提交 34c80b1d 编写于 作者: A Al Viro

vfs: switch ->show_options() to struct dentry *

Signed-off-by: NAl Viro <viro@zeniv.linux.org.uk>
上级 a6322de6
...@@ -117,7 +117,7 @@ prototypes: ...@@ -117,7 +117,7 @@ prototypes:
int (*statfs) (struct dentry *, struct kstatfs *); int (*statfs) (struct dentry *, struct kstatfs *);
int (*remount_fs) (struct super_block *, int *, char *); int (*remount_fs) (struct super_block *, int *, char *);
void (*umount_begin) (struct super_block *); void (*umount_begin) (struct super_block *);
int (*show_options)(struct seq_file *, struct vfsmount *); int (*show_options)(struct seq_file *, struct dentry *);
ssize_t (*quota_read)(struct super_block *, int, char *, size_t, loff_t); ssize_t (*quota_read)(struct super_block *, int, char *, size_t, loff_t);
ssize_t (*quota_write)(struct super_block *, int, const char *, size_t, loff_t); ssize_t (*quota_write)(struct super_block *, int, const char *, size_t, loff_t);
int (*bdev_try_to_free_page)(struct super_block*, struct page*, gfp_t); int (*bdev_try_to_free_page)(struct super_block*, struct page*, gfp_t);
......
...@@ -225,7 +225,7 @@ struct super_operations { ...@@ -225,7 +225,7 @@ struct super_operations {
void (*clear_inode) (struct inode *); void (*clear_inode) (struct inode *);
void (*umount_begin) (struct super_block *); void (*umount_begin) (struct super_block *);
int (*show_options)(struct seq_file *, struct vfsmount *); int (*show_options)(struct seq_file *, struct dentry *);
ssize_t (*quota_read)(struct super_block *, int, char *, size_t, loff_t); ssize_t (*quota_read)(struct super_block *, int, char *, size_t, loff_t);
ssize_t (*quota_write)(struct super_block *, int, const char *, size_t, loff_t); ssize_t (*quota_write)(struct super_block *, int, const char *, size_t, loff_t);
......
...@@ -259,9 +259,9 @@ static int hypfs_parse_options(char *options, struct super_block *sb) ...@@ -259,9 +259,9 @@ static int hypfs_parse_options(char *options, struct super_block *sb)
return 0; return 0;
} }
static int hypfs_show_options(struct seq_file *s, struct vfsmount *mnt) static int hypfs_show_options(struct seq_file *s, struct dentry *root)
{ {
struct hypfs_sb_info *hypfs_info = mnt->mnt_sb->s_fs_info; struct hypfs_sb_info *hypfs_info = root->d_sb->s_fs_info;
seq_printf(s, ",uid=%u", hypfs_info->uid); seq_printf(s, ",uid=%u", hypfs_info->uid);
seq_printf(s, ",gid=%u", hypfs_info->gid); seq_printf(s, ",gid=%u", hypfs_info->gid);
......
...@@ -1369,9 +1369,9 @@ static int pohmelfs_statfs(struct dentry *dentry, struct kstatfs *buf) ...@@ -1369,9 +1369,9 @@ static int pohmelfs_statfs(struct dentry *dentry, struct kstatfs *buf)
return 0; return 0;
} }
static int pohmelfs_show_options(struct seq_file *seq, struct vfsmount *vfs) static int pohmelfs_show_options(struct seq_file *seq, struct dentry *root)
{ {
struct pohmelfs_sb *psb = POHMELFS_SB(vfs->mnt_sb); struct pohmelfs_sb *psb = POHMELFS_SB(root->d_sb);
seq_printf(seq, ",idx=%u", psb->idx); seq_printf(seq, ",idx=%u", psb->idx);
seq_printf(seq, ",trans_scan_timeout=%u", jiffies_to_msecs(psb->trans_scan_timeout)); seq_printf(seq, ",trans_scan_timeout=%u", jiffies_to_msecs(psb->trans_scan_timeout));
......
...@@ -65,7 +65,7 @@ static umode_t devmode = USBFS_DEFAULT_DEVMODE; ...@@ -65,7 +65,7 @@ static umode_t devmode = USBFS_DEFAULT_DEVMODE;
static umode_t busmode = USBFS_DEFAULT_BUSMODE; static umode_t busmode = USBFS_DEFAULT_BUSMODE;
static umode_t listmode = USBFS_DEFAULT_LISTMODE; static umode_t listmode = USBFS_DEFAULT_LISTMODE;
static int usbfs_show_options(struct seq_file *seq, struct vfsmount *mnt) static int usbfs_show_options(struct seq_file *seq, struct dentry *root)
{ {
if (devuid != 0) if (devuid != 0)
seq_printf(seq, ",devuid=%u", devuid); seq_printf(seq, ",devuid=%u", devuid);
......
...@@ -126,9 +126,9 @@ static void adfs_put_super(struct super_block *sb) ...@@ -126,9 +126,9 @@ static void adfs_put_super(struct super_block *sb)
sb->s_fs_info = NULL; sb->s_fs_info = NULL;
} }
static int adfs_show_options(struct seq_file *seq, struct vfsmount *mnt) static int adfs_show_options(struct seq_file *seq, struct dentry *root)
{ {
struct adfs_sb_info *asb = ADFS_SB(mnt->mnt_sb); struct adfs_sb_info *asb = ADFS_SB(root->d_sb);
if (asb->s_uid != 0) if (asb->s_uid != 0)
seq_printf(seq, ",uid=%u", asb->s_uid); seq_printf(seq, ",uid=%u", asb->s_uid);
......
...@@ -70,10 +70,10 @@ void autofs4_kill_sb(struct super_block *sb) ...@@ -70,10 +70,10 @@ void autofs4_kill_sb(struct super_block *sb)
kill_litter_super(sb); kill_litter_super(sb);
} }
static int autofs4_show_options(struct seq_file *m, struct vfsmount *mnt) static int autofs4_show_options(struct seq_file *m, struct dentry *root)
{ {
struct autofs_sb_info *sbi = autofs4_sbi(mnt->mnt_sb); struct autofs_sb_info *sbi = autofs4_sbi(root->d_sb);
struct inode *root_inode = mnt->mnt_sb->s_root->d_inode; struct inode *root_inode = root->d_sb->s_root->d_inode;
if (!sbi) if (!sbi)
return 0; return 0;
......
...@@ -661,9 +661,9 @@ int btrfs_sync_fs(struct super_block *sb, int wait) ...@@ -661,9 +661,9 @@ int btrfs_sync_fs(struct super_block *sb, int wait)
return ret; return ret;
} }
static int btrfs_show_options(struct seq_file *seq, struct vfsmount *vfs) static int btrfs_show_options(struct seq_file *seq, struct dentry *dentry)
{ {
struct btrfs_root *root = btrfs_sb(vfs->mnt_sb); struct btrfs_root *root = btrfs_sb(dentry->d_sb);
struct btrfs_fs_info *info = root->fs_info; struct btrfs_fs_info *info = root->fs_info;
char *compress_type; char *compress_type;
......
...@@ -341,11 +341,11 @@ static int parse_mount_options(struct ceph_mount_options **pfsopt, ...@@ -341,11 +341,11 @@ static int parse_mount_options(struct ceph_mount_options **pfsopt,
/** /**
* ceph_show_options - Show mount options in /proc/mounts * ceph_show_options - Show mount options in /proc/mounts
* @m: seq_file to write to * @m: seq_file to write to
* @mnt: mount descriptor * @root: root of that (sub)tree
*/ */
static int ceph_show_options(struct seq_file *m, struct vfsmount *mnt) static int ceph_show_options(struct seq_file *m, struct dentry *root)
{ {
struct ceph_fs_client *fsc = ceph_sb_to_client(mnt->mnt_sb); struct ceph_fs_client *fsc = ceph_sb_to_client(root->d_sb);
struct ceph_mount_options *fsopt = fsc->mount_options; struct ceph_mount_options *fsopt = fsc->mount_options;
struct ceph_options *opt = fsc->client->options; struct ceph_options *opt = fsc->client->options;
......
...@@ -343,9 +343,9 @@ cifs_show_security(struct seq_file *s, struct TCP_Server_Info *server) ...@@ -343,9 +343,9 @@ cifs_show_security(struct seq_file *s, struct TCP_Server_Info *server)
* ones are. * ones are.
*/ */
static int static int
cifs_show_options(struct seq_file *s, struct vfsmount *m) cifs_show_options(struct seq_file *s, struct dentry *root)
{ {
struct cifs_sb_info *cifs_sb = CIFS_SB(m->mnt_sb); struct cifs_sb_info *cifs_sb = CIFS_SB(root->d_sb);
struct cifs_tcon *tcon = cifs_sb_master_tcon(cifs_sb); struct cifs_tcon *tcon = cifs_sb_master_tcon(cifs_sb);
struct sockaddr *srcaddr; struct sockaddr *srcaddr;
srcaddr = (struct sockaddr *)&tcon->ses->server->srcaddr; srcaddr = (struct sockaddr *)&tcon->ses->server->srcaddr;
...@@ -430,7 +430,7 @@ cifs_show_options(struct seq_file *s, struct vfsmount *m) ...@@ -430,7 +430,7 @@ cifs_show_options(struct seq_file *s, struct vfsmount *m)
seq_printf(s, ",cifsacl"); seq_printf(s, ",cifsacl");
if (cifs_sb->mnt_cifs_flags & CIFS_MOUNT_DYNPERM) if (cifs_sb->mnt_cifs_flags & CIFS_MOUNT_DYNPERM)
seq_printf(s, ",dynperm"); seq_printf(s, ",dynperm");
if (m->mnt_sb->s_flags & MS_POSIXACL) if (root->d_sb->s_flags & MS_POSIXACL)
seq_printf(s, ",acl"); seq_printf(s, ",acl");
if (cifs_sb->mnt_cifs_flags & CIFS_MOUNT_MF_SYMLINKS) if (cifs_sb->mnt_cifs_flags & CIFS_MOUNT_MF_SYMLINKS)
seq_printf(s, ",mfsymlinks"); seq_printf(s, ",mfsymlinks");
......
...@@ -246,9 +246,9 @@ static int devpts_remount(struct super_block *sb, int *flags, char *data) ...@@ -246,9 +246,9 @@ static int devpts_remount(struct super_block *sb, int *flags, char *data)
return err; return err;
} }
static int devpts_show_options(struct seq_file *seq, struct vfsmount *vfs) static int devpts_show_options(struct seq_file *seq, struct dentry *root)
{ {
struct pts_fs_info *fsi = DEVPTS_SB(vfs->mnt_sb); struct pts_fs_info *fsi = DEVPTS_SB(root->d_sb);
struct pts_mount_opts *opts = &fsi->mount_opts; struct pts_mount_opts *opts = &fsi->mount_opts;
if (opts->setuid) if (opts->setuid)
......
...@@ -131,9 +131,9 @@ static void ecryptfs_evict_inode(struct inode *inode) ...@@ -131,9 +131,9 @@ static void ecryptfs_evict_inode(struct inode *inode)
* Prints the mount options for a given superblock. * Prints the mount options for a given superblock.
* Returns zero; does not fail. * Returns zero; does not fail.
*/ */
static int ecryptfs_show_options(struct seq_file *m, struct vfsmount *mnt) static int ecryptfs_show_options(struct seq_file *m, struct dentry *root)
{ {
struct super_block *sb = mnt->mnt_sb; struct super_block *sb = root->d_sb;
struct ecryptfs_mount_crypt_stat *mount_crypt_stat = struct ecryptfs_mount_crypt_stat *mount_crypt_stat =
&ecryptfs_superblock_to_private(sb)->mount_crypt_stat; &ecryptfs_superblock_to_private(sb)->mount_crypt_stat;
struct ecryptfs_global_auth_tok *walker; struct ecryptfs_global_auth_tok *walker;
......
...@@ -210,9 +210,9 @@ static void destroy_inodecache(void) ...@@ -210,9 +210,9 @@ static void destroy_inodecache(void)
kmem_cache_destroy(ext2_inode_cachep); kmem_cache_destroy(ext2_inode_cachep);
} }
static int ext2_show_options(struct seq_file *seq, struct vfsmount *vfs) static int ext2_show_options(struct seq_file *seq, struct dentry *root)
{ {
struct super_block *sb = vfs->mnt_sb; struct super_block *sb = root->d_sb;
struct ext2_sb_info *sbi = EXT2_SB(sb); struct ext2_sb_info *sbi = EXT2_SB(sb);
struct ext2_super_block *es = sbi->s_es; struct ext2_super_block *es = sbi->s_es;
unsigned long def_mount_opts; unsigned long def_mount_opts;
......
...@@ -610,9 +610,9 @@ static char *data_mode_string(unsigned long mode) ...@@ -610,9 +610,9 @@ static char *data_mode_string(unsigned long mode)
* - it's set to a non-default value OR * - it's set to a non-default value OR
* - if the per-sb default is different from the global default * - if the per-sb default is different from the global default
*/ */
static int ext3_show_options(struct seq_file *seq, struct vfsmount *vfs) static int ext3_show_options(struct seq_file *seq, struct dentry *root)
{ {
struct super_block *sb = vfs->mnt_sb; struct super_block *sb = root->d_sb;
struct ext3_sb_info *sbi = EXT3_SB(sb); struct ext3_sb_info *sbi = EXT3_SB(sb);
struct ext3_super_block *es = sbi->s_es; struct ext3_super_block *es = sbi->s_es;
unsigned long def_mount_opts; unsigned long def_mount_opts;
......
...@@ -1032,11 +1032,11 @@ static inline void ext4_show_quota_options(struct seq_file *seq, ...@@ -1032,11 +1032,11 @@ static inline void ext4_show_quota_options(struct seq_file *seq,
* - it's set to a non-default value OR * - it's set to a non-default value OR
* - if the per-sb default is different from the global default * - if the per-sb default is different from the global default
*/ */
static int ext4_show_options(struct seq_file *seq, struct vfsmount *vfs) static int ext4_show_options(struct seq_file *seq, struct dentry *root)
{ {
int def_errors; int def_errors;
unsigned long def_mount_opts; unsigned long def_mount_opts;
struct super_block *sb = vfs->mnt_sb; struct super_block *sb = root->d_sb;
struct ext4_sb_info *sbi = EXT4_SB(sb); struct ext4_sb_info *sbi = EXT4_SB(sb);
struct ext4_super_block *es = sbi->s_es; struct ext4_super_block *es = sbi->s_es;
......
...@@ -671,7 +671,7 @@ int fat_sync_inode(struct inode *inode) ...@@ -671,7 +671,7 @@ int fat_sync_inode(struct inode *inode)
EXPORT_SYMBOL_GPL(fat_sync_inode); EXPORT_SYMBOL_GPL(fat_sync_inode);
static int fat_show_options(struct seq_file *m, struct vfsmount *mnt); static int fat_show_options(struct seq_file *m, struct dentry *root);
static const struct super_operations fat_sops = { static const struct super_operations fat_sops = {
.alloc_inode = fat_alloc_inode, .alloc_inode = fat_alloc_inode,
.destroy_inode = fat_destroy_inode, .destroy_inode = fat_destroy_inode,
...@@ -810,9 +810,9 @@ static const struct export_operations fat_export_ops = { ...@@ -810,9 +810,9 @@ static const struct export_operations fat_export_ops = {
.get_parent = fat_get_parent, .get_parent = fat_get_parent,
}; };
static int fat_show_options(struct seq_file *m, struct vfsmount *mnt) static int fat_show_options(struct seq_file *m, struct dentry *root)
{ {
struct msdos_sb_info *sbi = MSDOS_SB(mnt->mnt_sb); struct msdos_sb_info *sbi = MSDOS_SB(root->d_sb);
struct fat_mount_options *opts = &sbi->options; struct fat_mount_options *opts = &sbi->options;
int isvfat = opts->isvfat; int isvfat = opts->isvfat;
......
...@@ -497,9 +497,10 @@ static int parse_fuse_opt(char *opt, struct fuse_mount_data *d, int is_bdev) ...@@ -497,9 +497,10 @@ static int parse_fuse_opt(char *opt, struct fuse_mount_data *d, int is_bdev)
return 1; return 1;
} }
static int fuse_show_options(struct seq_file *m, struct vfsmount *mnt) static int fuse_show_options(struct seq_file *m, struct dentry *root)
{ {
struct fuse_conn *fc = get_fuse_conn_super(mnt->mnt_sb); struct super_block *sb = root->d_sb;
struct fuse_conn *fc = get_fuse_conn_super(sb);
seq_printf(m, ",user_id=%u", fc->user_id); seq_printf(m, ",user_id=%u", fc->user_id);
seq_printf(m, ",group_id=%u", fc->group_id); seq_printf(m, ",group_id=%u", fc->group_id);
...@@ -509,9 +510,8 @@ static int fuse_show_options(struct seq_file *m, struct vfsmount *mnt) ...@@ -509,9 +510,8 @@ static int fuse_show_options(struct seq_file *m, struct vfsmount *mnt)
seq_puts(m, ",allow_other"); seq_puts(m, ",allow_other");
if (fc->max_read != ~0) if (fc->max_read != ~0)
seq_printf(m, ",max_read=%u", fc->max_read); seq_printf(m, ",max_read=%u", fc->max_read);
if (mnt->mnt_sb->s_bdev && if (sb->s_bdev && sb->s_blocksize != FUSE_DEFAULT_BLKSIZE)
mnt->mnt_sb->s_blocksize != FUSE_DEFAULT_BLKSIZE) seq_printf(m, ",blksize=%lu", sb->s_blocksize);
seq_printf(m, ",blksize=%lu", mnt->mnt_sb->s_blocksize);
return 0; return 0;
} }
......
...@@ -1284,18 +1284,18 @@ static int is_ancestor(const struct dentry *d1, const struct dentry *d2) ...@@ -1284,18 +1284,18 @@ static int is_ancestor(const struct dentry *d1, const struct dentry *d2)
/** /**
* gfs2_show_options - Show mount options for /proc/mounts * gfs2_show_options - Show mount options for /proc/mounts
* @s: seq_file structure * @s: seq_file structure
* @mnt: vfsmount * @root: root of this (sub)tree
* *
* Returns: 0 on success or error code * Returns: 0 on success or error code
*/ */
static int gfs2_show_options(struct seq_file *s, struct vfsmount *mnt) static int gfs2_show_options(struct seq_file *s, struct dentry *root)
{ {
struct gfs2_sbd *sdp = mnt->mnt_sb->s_fs_info; struct gfs2_sbd *sdp = root->d_sb->s_fs_info;
struct gfs2_args *args = &sdp->sd_args; struct gfs2_args *args = &sdp->sd_args;
int val; int val;
if (is_ancestor(mnt->mnt_root, sdp->sd_master_dir)) if (is_ancestor(root, sdp->sd_master_dir))
seq_printf(s, ",meta"); seq_printf(s, ",meta");
if (args->ar_lockproto[0]) if (args->ar_lockproto[0])
seq_printf(s, ",lockproto=%s", args->ar_lockproto); seq_printf(s, ",lockproto=%s", args->ar_lockproto);
......
...@@ -133,9 +133,9 @@ static int hfs_remount(struct super_block *sb, int *flags, char *data) ...@@ -133,9 +133,9 @@ static int hfs_remount(struct super_block *sb, int *flags, char *data)
return 0; return 0;
} }
static int hfs_show_options(struct seq_file *seq, struct vfsmount *mnt) static int hfs_show_options(struct seq_file *seq, struct dentry *root)
{ {
struct hfs_sb_info *sbi = HFS_SB(mnt->mnt_sb); struct hfs_sb_info *sbi = HFS_SB(root->d_sb);
if (sbi->s_creator != cpu_to_be32(0x3f3f3f3f)) if (sbi->s_creator != cpu_to_be32(0x3f3f3f3f))
seq_printf(seq, ",creator=%.4s", (char *)&sbi->s_creator); seq_printf(seq, ",creator=%.4s", (char *)&sbi->s_creator);
......
...@@ -419,7 +419,7 @@ ssize_t hfsplus_listxattr(struct dentry *dentry, char *buffer, size_t size); ...@@ -419,7 +419,7 @@ ssize_t hfsplus_listxattr(struct dentry *dentry, char *buffer, size_t size);
int hfsplus_parse_options(char *, struct hfsplus_sb_info *); int hfsplus_parse_options(char *, struct hfsplus_sb_info *);
int hfsplus_parse_options_remount(char *input, int *force); int hfsplus_parse_options_remount(char *input, int *force);
void hfsplus_fill_defaults(struct hfsplus_sb_info *); void hfsplus_fill_defaults(struct hfsplus_sb_info *);
int hfsplus_show_options(struct seq_file *, struct vfsmount *); int hfsplus_show_options(struct seq_file *, struct dentry *);
/* super.c */ /* super.c */
struct inode *hfsplus_iget(struct super_block *, unsigned long); struct inode *hfsplus_iget(struct super_block *, unsigned long);
......
...@@ -206,9 +206,9 @@ int hfsplus_parse_options(char *input, struct hfsplus_sb_info *sbi) ...@@ -206,9 +206,9 @@ int hfsplus_parse_options(char *input, struct hfsplus_sb_info *sbi)
return 1; return 1;
} }
int hfsplus_show_options(struct seq_file *seq, struct vfsmount *mnt) int hfsplus_show_options(struct seq_file *seq, struct dentry *root)
{ {
struct hfsplus_sb_info *sbi = HFSPLUS_SB(mnt->mnt_sb); struct hfsplus_sb_info *sbi = HFSPLUS_SB(root->d_sb);
if (sbi->creator != HFSPLUS_DEF_CR_TYPE) if (sbi->creator != HFSPLUS_DEF_CR_TYPE)
seq_printf(seq, ",creator=%.4s", (char *)&sbi->creator); seq_printf(seq, ",creator=%.4s", (char *)&sbi->creator);
......
...@@ -258,9 +258,9 @@ static void hostfs_destroy_inode(struct inode *inode) ...@@ -258,9 +258,9 @@ static void hostfs_destroy_inode(struct inode *inode)
call_rcu(&inode->i_rcu, hostfs_i_callback); call_rcu(&inode->i_rcu, hostfs_i_callback);
} }
static int hostfs_show_options(struct seq_file *seq, struct vfsmount *vfs) static int hostfs_show_options(struct seq_file *seq, struct dentry *root)
{ {
const char *root_path = vfs->mnt_sb->s_fs_info; const char *root_path = root->d_sb->s_fs_info;
size_t offset = strlen(root_ino) + 1; size_t offset = strlen(root_ino) + 1;
if (strlen(root_path) > offset) if (strlen(root_path) > offset)
......
...@@ -96,9 +96,9 @@ static const char *jffs2_compr_name(unsigned int compr) ...@@ -96,9 +96,9 @@ static const char *jffs2_compr_name(unsigned int compr)
} }
} }
static int jffs2_show_options(struct seq_file *s, struct vfsmount *mnt) static int jffs2_show_options(struct seq_file *s, struct dentry *root)
{ {
struct jffs2_sb_info *c = JFFS2_SB_INFO(mnt->mnt_sb); struct jffs2_sb_info *c = JFFS2_SB_INFO(root->d_sb);
struct jffs2_mount_opts *opts = &c->mount_opts; struct jffs2_mount_opts *opts = &c->mount_opts;
if (opts->override_compr) if (opts->override_compr)
......
...@@ -608,9 +608,9 @@ static int jfs_sync_fs(struct super_block *sb, int wait) ...@@ -608,9 +608,9 @@ static int jfs_sync_fs(struct super_block *sb, int wait)
return 0; return 0;
} }
static int jfs_show_options(struct seq_file *seq, struct vfsmount *vfs) static int jfs_show_options(struct seq_file *seq, struct dentry *root)
{ {
struct jfs_sb_info *sbi = JFS_SBI(vfs->mnt_sb); struct jfs_sb_info *sbi = JFS_SBI(root->d_sb);
if (sbi->uid != -1) if (sbi->uid != -1)
seq_printf(seq, ",uid=%d", sbi->uid); seq_printf(seq, ",uid=%d", sbi->uid);
......
...@@ -836,12 +836,12 @@ static inline void mangle(struct seq_file *m, const char *s) ...@@ -836,12 +836,12 @@ static inline void mangle(struct seq_file *m, const char *s)
* *
* See also save_mount_options(). * See also save_mount_options().
*/ */
int generic_show_options(struct seq_file *m, struct vfsmount *mnt) int generic_show_options(struct seq_file *m, struct dentry *root)
{ {
const char *options; const char *options;
rcu_read_lock(); rcu_read_lock();
options = rcu_dereference(mnt->mnt_sb->s_options); options = rcu_dereference(root->d_sb->s_options);
if (options != NULL && options[0]) { if (options != NULL && options[0]) {
seq_putc(m, ','); seq_putc(m, ',');
......
...@@ -44,7 +44,7 @@ ...@@ -44,7 +44,7 @@
static void ncp_evict_inode(struct inode *); static void ncp_evict_inode(struct inode *);
static void ncp_put_super(struct super_block *); static void ncp_put_super(struct super_block *);
static int ncp_statfs(struct dentry *, struct kstatfs *); static int ncp_statfs(struct dentry *, struct kstatfs *);
static int ncp_show_options(struct seq_file *, struct vfsmount *); static int ncp_show_options(struct seq_file *, struct dentry *);
static struct kmem_cache * ncp_inode_cachep; static struct kmem_cache * ncp_inode_cachep;
...@@ -322,9 +322,9 @@ static void ncp_stop_tasks(struct ncp_server *server) { ...@@ -322,9 +322,9 @@ static void ncp_stop_tasks(struct ncp_server *server) {
flush_work_sync(&server->timeout_tq); flush_work_sync(&server->timeout_tq);
} }
static int ncp_show_options(struct seq_file *seq, struct vfsmount *mnt) static int ncp_show_options(struct seq_file *seq, struct dentry *root)
{ {
struct ncp_server *server = NCP_SBP(mnt->mnt_sb); struct ncp_server *server = NCP_SBP(root->d_sb);
unsigned int tmp; unsigned int tmp;
if (server->m.uid != 0) if (server->m.uid != 0)
......
...@@ -262,7 +262,7 @@ static match_table_t nfs_local_lock_tokens = { ...@@ -262,7 +262,7 @@ static match_table_t nfs_local_lock_tokens = {
static void nfs_umount_begin(struct super_block *); static void nfs_umount_begin(struct super_block *);
static int nfs_statfs(struct dentry *, struct kstatfs *); static int nfs_statfs(struct dentry *, struct kstatfs *);
static int nfs_show_options(struct seq_file *, struct vfsmount *); static int nfs_show_options(struct seq_file *, struct dentry *);
static int nfs_show_devname(struct seq_file *, struct dentry *); static int nfs_show_devname(struct seq_file *, struct dentry *);
static int nfs_show_path(struct seq_file *, struct dentry *); static int nfs_show_path(struct seq_file *, struct dentry *);
static int nfs_show_stats(struct seq_file *, struct dentry *); static int nfs_show_stats(struct seq_file *, struct dentry *);
...@@ -720,9 +720,9 @@ static void nfs_show_mount_options(struct seq_file *m, struct nfs_server *nfss, ...@@ -720,9 +720,9 @@ static void nfs_show_mount_options(struct seq_file *m, struct nfs_server *nfss,
/* /*
* Describe the mount options on this VFS mountpoint * Describe the mount options on this VFS mountpoint
*/ */
static int nfs_show_options(struct seq_file *m, struct vfsmount *mnt) static int nfs_show_options(struct seq_file *m, struct dentry *root)
{ {
struct nfs_server *nfss = NFS_SB(mnt->mnt_sb); struct nfs_server *nfss = NFS_SB(root->d_sb);
nfs_show_mount_options(m, nfss, 0); nfs_show_mount_options(m, nfss, 0);
......
...@@ -648,11 +648,11 @@ static int nilfs_statfs(struct dentry *dentry, struct kstatfs *buf) ...@@ -648,11 +648,11 @@ static int nilfs_statfs(struct dentry *dentry, struct kstatfs *buf)
return 0; return 0;
} }
static int nilfs_show_options(struct seq_file *seq, struct vfsmount *vfs) static int nilfs_show_options(struct seq_file *seq, struct dentry *dentry)
{ {
struct super_block *sb = vfs->mnt_sb; struct super_block *sb = dentry->d_sb;
struct the_nilfs *nilfs = sb->s_fs_info; struct the_nilfs *nilfs = sb->s_fs_info;
struct nilfs_root *root = NILFS_I(vfs->mnt_root->d_inode)->i_root; struct nilfs_root *root = NILFS_I(dentry->d_inode)->i_root;
if (!nilfs_test_opt(nilfs, BARRIER)) if (!nilfs_test_opt(nilfs, BARRIER))
seq_puts(seq, ",nobarrier"); seq_puts(seq, ",nobarrier");
......
...@@ -2300,16 +2300,16 @@ void ntfs_evict_big_inode(struct inode *vi) ...@@ -2300,16 +2300,16 @@ void ntfs_evict_big_inode(struct inode *vi)
/** /**
* ntfs_show_options - show mount options in /proc/mounts * ntfs_show_options - show mount options in /proc/mounts
* @sf: seq_file in which to write our mount options * @sf: seq_file in which to write our mount options
* @mnt: vfs mount whose mount options to display * @root: root of the mounted tree whose mount options to display
* *
* Called by the VFS once for each mounted ntfs volume when someone reads * Called by the VFS once for each mounted ntfs volume when someone reads
* /proc/mounts in order to display the NTFS specific mount options of each * /proc/mounts in order to display the NTFS specific mount options of each
* mount. The mount options of the vfs mount @mnt are written to the seq file * mount. The mount options of fs specified by @root are written to the seq file
* @sf and success is returned. * @sf and success is returned.
*/ */
int ntfs_show_options(struct seq_file *sf, struct vfsmount *mnt) int ntfs_show_options(struct seq_file *sf, struct dentry *root)
{ {
ntfs_volume *vol = NTFS_SB(mnt->mnt_sb); ntfs_volume *vol = NTFS_SB(root->d_sb);
int i; int i;
seq_printf(sf, ",uid=%i", vol->uid); seq_printf(sf, ",uid=%i", vol->uid);
......
...@@ -298,7 +298,7 @@ extern void ntfs_clear_extent_inode(ntfs_inode *ni); ...@@ -298,7 +298,7 @@ extern void ntfs_clear_extent_inode(ntfs_inode *ni);
extern int ntfs_read_inode_mount(struct inode *vi); extern int ntfs_read_inode_mount(struct inode *vi);
extern int ntfs_show_options(struct seq_file *sf, struct vfsmount *mnt); extern int ntfs_show_options(struct seq_file *sf, struct dentry *root);
#ifdef NTFS_RW #ifdef NTFS_RW
......
...@@ -108,7 +108,7 @@ static int ocfs2_parse_options(struct super_block *sb, char *options, ...@@ -108,7 +108,7 @@ static int ocfs2_parse_options(struct super_block *sb, char *options,
int is_remount); int is_remount);
static int ocfs2_check_set_options(struct super_block *sb, static int ocfs2_check_set_options(struct super_block *sb,
struct mount_options *options); struct mount_options *options);
static int ocfs2_show_options(struct seq_file *s, struct vfsmount *mnt); static int ocfs2_show_options(struct seq_file *s, struct dentry *root);
static void ocfs2_put_super(struct super_block *sb); static void ocfs2_put_super(struct super_block *sb);
static int ocfs2_mount_volume(struct super_block *sb); static int ocfs2_mount_volume(struct super_block *sb);
static int ocfs2_remount(struct super_block *sb, int *flags, char *data); static int ocfs2_remount(struct super_block *sb, int *flags, char *data);
...@@ -1533,9 +1533,9 @@ static int ocfs2_parse_options(struct super_block *sb, ...@@ -1533,9 +1533,9 @@ static int ocfs2_parse_options(struct super_block *sb,
return status; return status;
} }
static int ocfs2_show_options(struct seq_file *s, struct vfsmount *mnt) static int ocfs2_show_options(struct seq_file *s, struct dentry *root)
{ {
struct ocfs2_super *osb = OCFS2_SB(mnt->mnt_sb); struct ocfs2_super *osb = OCFS2_SB(root->d_sb);
unsigned long opts = osb->s_mount_opt; unsigned long opts = osb->s_mount_opt;
unsigned int local_alloc_megs; unsigned int local_alloc_megs;
...@@ -1567,7 +1567,6 @@ static int ocfs2_show_options(struct seq_file *s, struct vfsmount *mnt) ...@@ -1567,7 +1567,6 @@ static int ocfs2_show_options(struct seq_file *s, struct vfsmount *mnt)
if (osb->preferred_slot != OCFS2_INVALID_SLOT) if (osb->preferred_slot != OCFS2_INVALID_SLOT)
seq_printf(s, ",preferred_slot=%d", osb->preferred_slot); seq_printf(s, ",preferred_slot=%d", osb->preferred_slot);
if (!(mnt->mnt_flags & MNT_NOATIME) && !(mnt->mnt_flags & MNT_RELATIME))
seq_printf(s, ",atime_quantum=%u", osb->s_atime_quantum); seq_printf(s, ",atime_quantum=%u", osb->s_atime_quantum);
if (osb->osb_commit_interval) if (osb->osb_commit_interval)
......
...@@ -113,7 +113,7 @@ static int show_vfsmnt(struct seq_file *m, struct vfsmount *mnt) ...@@ -113,7 +113,7 @@ static int show_vfsmnt(struct seq_file *m, struct vfsmount *mnt)
goto out; goto out;
show_mnt_opts(m, mnt); show_mnt_opts(m, mnt);
if (sb->s_op->show_options) if (sb->s_op->show_options)
err = sb->s_op->show_options(m, mnt); err = sb->s_op->show_options(m, mnt_path.dentry);
seq_puts(m, " 0 0\n"); seq_puts(m, " 0 0\n");
out: out:
return err; return err;
...@@ -174,7 +174,7 @@ static int show_mountinfo(struct seq_file *m, struct vfsmount *mnt) ...@@ -174,7 +174,7 @@ static int show_mountinfo(struct seq_file *m, struct vfsmount *mnt)
if (err) if (err)
goto out; goto out;
if (sb->s_op->show_options) if (sb->s_op->show_options)
err = sb->s_op->show_options(m, mnt); err = sb->s_op->show_options(m, mnt->mnt_root);
seq_putc(m, '\n'); seq_putc(m, '\n');
out: out:
return err; return err;
......
...@@ -419,9 +419,9 @@ static int ubifs_statfs(struct dentry *dentry, struct kstatfs *buf) ...@@ -419,9 +419,9 @@ static int ubifs_statfs(struct dentry *dentry, struct kstatfs *buf)
return 0; return 0;
} }
static int ubifs_show_options(struct seq_file *s, struct vfsmount *mnt) static int ubifs_show_options(struct seq_file *s, struct dentry *root)
{ {
struct ubifs_info *c = mnt->mnt_sb->s_fs_info; struct ubifs_info *c = root->d_sb->s_fs_info;
if (c->mount_opts.unmount_mode == 2) if (c->mount_opts.unmount_mode == 2)
seq_printf(s, ",fast_unmount"); seq_printf(s, ",fast_unmount");
......
...@@ -89,7 +89,7 @@ static void udf_open_lvid(struct super_block *); ...@@ -89,7 +89,7 @@ static void udf_open_lvid(struct super_block *);
static void udf_close_lvid(struct super_block *); static void udf_close_lvid(struct super_block *);
static unsigned int udf_count_free(struct super_block *); static unsigned int udf_count_free(struct super_block *);
static int udf_statfs(struct dentry *, struct kstatfs *); static int udf_statfs(struct dentry *, struct kstatfs *);
static int udf_show_options(struct seq_file *, struct vfsmount *); static int udf_show_options(struct seq_file *, struct dentry *);
struct logicalVolIntegrityDescImpUse *udf_sb_lvidiu(struct udf_sb_info *sbi) struct logicalVolIntegrityDescImpUse *udf_sb_lvidiu(struct udf_sb_info *sbi)
{ {
...@@ -249,9 +249,9 @@ static int udf_sb_alloc_partition_maps(struct super_block *sb, u32 count) ...@@ -249,9 +249,9 @@ static int udf_sb_alloc_partition_maps(struct super_block *sb, u32 count)
return 0; return 0;
} }
static int udf_show_options(struct seq_file *seq, struct vfsmount *mnt) static int udf_show_options(struct seq_file *seq, struct dentry *root)
{ {
struct super_block *sb = mnt->mnt_sb; struct super_block *sb = root->d_sb;
struct udf_sb_info *sbi = UDF_SB(sb); struct udf_sb_info *sbi = UDF_SB(sb);
if (!UDF_QUERY_FLAG(sb, UDF_FLAG_STRICT)) if (!UDF_QUERY_FLAG(sb, UDF_FLAG_STRICT))
......
...@@ -1351,9 +1351,9 @@ static int ufs_remount (struct super_block *sb, int *mount_flags, char *data) ...@@ -1351,9 +1351,9 @@ static int ufs_remount (struct super_block *sb, int *mount_flags, char *data)
return 0; return 0;
} }
static int ufs_show_options(struct seq_file *seq, struct vfsmount *vfs) static int ufs_show_options(struct seq_file *seq, struct dentry *root)
{ {
struct ufs_sb_info *sbi = UFS_SB(vfs->mnt_sb); struct ufs_sb_info *sbi = UFS_SB(root->d_sb);
unsigned mval = sbi->s_mount_opt & UFS_MOUNT_UFSTYPE; unsigned mval = sbi->s_mount_opt & UFS_MOUNT_UFSTYPE;
const struct match_token *tp = tokens; const struct match_token *tp = tokens;
......
...@@ -1238,9 +1238,9 @@ xfs_fs_unfreeze( ...@@ -1238,9 +1238,9 @@ xfs_fs_unfreeze(
STATIC int STATIC int
xfs_fs_show_options( xfs_fs_show_options(
struct seq_file *m, struct seq_file *m,
struct vfsmount *mnt) struct dentry *root)
{ {
return -xfs_showargs(XFS_M(mnt->mnt_sb), m); return -xfs_showargs(XFS_M(root->d_sb), m);
} }
/* /*
......
...@@ -1672,7 +1672,7 @@ struct super_operations { ...@@ -1672,7 +1672,7 @@ struct super_operations {
int (*remount_fs) (struct super_block *, int *, char *); int (*remount_fs) (struct super_block *, int *, char *);
void (*umount_begin) (struct super_block *); void (*umount_begin) (struct super_block *);
int (*show_options)(struct seq_file *, struct vfsmount *); int (*show_options)(struct seq_file *, struct dentry *);
int (*show_devname)(struct seq_file *, struct dentry *); int (*show_devname)(struct seq_file *, struct dentry *);
int (*show_path)(struct seq_file *, struct dentry *); int (*show_path)(struct seq_file *, struct dentry *);
int (*show_stats)(struct seq_file *, struct dentry *); int (*show_stats)(struct seq_file *, struct dentry *);
...@@ -2592,7 +2592,7 @@ extern void setattr_copy(struct inode *inode, const struct iattr *attr); ...@@ -2592,7 +2592,7 @@ extern void setattr_copy(struct inode *inode, const struct iattr *attr);
extern void file_update_time(struct file *file); extern void file_update_time(struct file *file);
extern int generic_show_options(struct seq_file *m, struct vfsmount *mnt); extern int generic_show_options(struct seq_file *m, struct dentry *root);
extern void save_mount_options(struct super_block *sb, char *options); extern void save_mount_options(struct super_block *sb, char *options);
extern void replace_mount_options(struct super_block *sb, char *options); extern void replace_mount_options(struct super_block *sb, char *options);
......
...@@ -1038,9 +1038,9 @@ static int rebind_subsystems(struct cgroupfs_root *root, ...@@ -1038,9 +1038,9 @@ static int rebind_subsystems(struct cgroupfs_root *root,
return 0; return 0;
} }
static int cgroup_show_options(struct seq_file *seq, struct vfsmount *vfs) static int cgroup_show_options(struct seq_file *seq, struct dentry *dentry)
{ {
struct cgroupfs_root *root = vfs->mnt_sb->s_fs_info; struct cgroupfs_root *root = dentry->d_sb->s_fs_info;
struct cgroup_subsys *ss; struct cgroup_subsys *ss;
mutex_lock(&cgroup_mutex); mutex_lock(&cgroup_mutex);
......
...@@ -2118,9 +2118,9 @@ static int shmem_remount_fs(struct super_block *sb, int *flags, char *data) ...@@ -2118,9 +2118,9 @@ static int shmem_remount_fs(struct super_block *sb, int *flags, char *data)
return error; return error;
} }
static int shmem_show_options(struct seq_file *seq, struct vfsmount *vfs) static int shmem_show_options(struct seq_file *seq, struct dentry *root)
{ {
struct shmem_sb_info *sbinfo = SHMEM_SB(vfs->mnt_sb); struct shmem_sb_info *sbinfo = SHMEM_SB(root->d_sb);
if (sbinfo->max_blocks != shmem_default_max_blocks()) if (sbinfo->max_blocks != shmem_default_max_blocks())
seq_printf(seq, ",size=%luk", seq_printf(seq, ",size=%luk",
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册