#include <linux/module.h>
#include <linux/errno.h>
#include <linux/fs.h>
#include <linux/file.h>
#include <linux/pagemap.h>
#include <linux/stat.h>
#include <linux/string.h>
#include <linux/namei.h>
#include <linux/sched.h>
#include <linux/slab.h>
#include <linux/xattr.h>
#include <linux/posix_acl.h>
#include <net/9p/9p.h>
#include <net/9p/client.h>
#include "v9fs.h"
#include "v9fs_vfs.h"
#include "fid.h"
#include "cache.h"
#include "xattr.h"
#include "acl.h"
static int
v9fs_vfs_mknod_dotl(struct mnt_idmap *idmap, struct inode *dir,
struct dentry *dentry, umode_t omode, dev_t rdev);
static kgid_t v9fs_get_fsgid_for_create(struct inode *dir_inode)
{ … }
struct inode *
v9fs_fid_iget_dotl(struct super_block *sb, struct p9_fid *fid, bool new)
{ … }
struct dotl_openflag_map { … };
static int v9fs_mapped_dotl_flags(int flags)
{ … }
int v9fs_open_to_dotl_flags(int flags)
{ … }
static int
v9fs_vfs_create_dotl(struct mnt_idmap *idmap, struct inode *dir,
struct dentry *dentry, umode_t omode, bool excl)
{ … }
static int
v9fs_vfs_atomic_open_dotl(struct inode *dir, struct dentry *dentry,
struct file *file, unsigned int flags, umode_t omode)
{ … }
static int v9fs_vfs_mkdir_dotl(struct mnt_idmap *idmap,
struct inode *dir, struct dentry *dentry,
umode_t omode)
{ … }
static int
v9fs_vfs_getattr_dotl(struct mnt_idmap *idmap,
const struct path *path, struct kstat *stat,
u32 request_mask, unsigned int flags)
{ … }
#define P9_ATTR_MODE …
#define P9_ATTR_UID …
#define P9_ATTR_GID …
#define P9_ATTR_SIZE …
#define P9_ATTR_ATIME …
#define P9_ATTR_MTIME …
#define P9_ATTR_CTIME …
#define P9_ATTR_ATIME_SET …
#define P9_ATTR_MTIME_SET …
struct dotl_iattr_map { … };
static int v9fs_mapped_iattr_valid(int iattr_valid)
{ … }
int v9fs_vfs_setattr_dotl(struct mnt_idmap *idmap,
struct dentry *dentry, struct iattr *iattr)
{ … }
void
v9fs_stat2inode_dotl(struct p9_stat_dotl *stat, struct inode *inode,
unsigned int flags)
{ … }
static int
v9fs_vfs_symlink_dotl(struct mnt_idmap *idmap, struct inode *dir,
struct dentry *dentry, const char *symname)
{ … }
static int
v9fs_vfs_link_dotl(struct dentry *old_dentry, struct inode *dir,
struct dentry *dentry)
{ … }
static int
v9fs_vfs_mknod_dotl(struct mnt_idmap *idmap, struct inode *dir,
struct dentry *dentry, umode_t omode, dev_t rdev)
{ … }
static const char *
v9fs_vfs_get_link_dotl(struct dentry *dentry,
struct inode *inode,
struct delayed_call *done)
{ … }
int v9fs_refresh_inode_dotl(struct p9_fid *fid, struct inode *inode)
{ … }
const struct inode_operations v9fs_dir_inode_operations_dotl = …;
const struct inode_operations v9fs_file_inode_operations_dotl = …;
const struct inode_operations v9fs_symlink_inode_operations_dotl = …;