diff options
author | Al Viro <viro@zeniv.linux.org.uk> | 2011-12-08 21:32:45 -0500 |
---|---|---|
committer | Al Viro <viro@zeniv.linux.org.uk> | 2012-01-06 23:19:54 -0500 |
commit | 34c80b1d93e6e20ca9dea0baf583a5b5510d92d4 (patch) | |
tree | 7dcbf0a4e09464247e6992c8f44fcc872867bd3a | |
parent | a6322de67b58a00e3a783ad9c87c2a11b2d67b47 (diff) |
vfs: switch ->show_options() to struct dentry *
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
39 files changed, 90 insertions, 91 deletions
diff --git a/Documentation/filesystems/Locking b/Documentation/filesystems/Locking index 9e9f30b9f46b..4fca82e5276e 100644 --- a/Documentation/filesystems/Locking +++ b/Documentation/filesystems/Locking | |||
@@ -117,7 +117,7 @@ prototypes: | |||
117 | int (*statfs) (struct dentry *, struct kstatfs *); | 117 | int (*statfs) (struct dentry *, struct kstatfs *); |
118 | int (*remount_fs) (struct super_block *, int *, char *); | 118 | int (*remount_fs) (struct super_block *, int *, char *); |
119 | void (*umount_begin) (struct super_block *); | 119 | void (*umount_begin) (struct super_block *); |
120 | int (*show_options)(struct seq_file *, struct vfsmount *); | 120 | int (*show_options)(struct seq_file *, struct dentry *); |
121 | ssize_t (*quota_read)(struct super_block *, int, char *, size_t, loff_t); | 121 | ssize_t (*quota_read)(struct super_block *, int, char *, size_t, loff_t); |
122 | ssize_t (*quota_write)(struct super_block *, int, const char *, size_t, loff_t); | 122 | ssize_t (*quota_write)(struct super_block *, int, const char *, size_t, loff_t); |
123 | int (*bdev_try_to_free_page)(struct super_block*, struct page*, gfp_t); | 123 | int (*bdev_try_to_free_page)(struct super_block*, struct page*, gfp_t); |
diff --git a/Documentation/filesystems/vfs.txt b/Documentation/filesystems/vfs.txt index 4b9f0d092a79..3d9393b845b8 100644 --- a/Documentation/filesystems/vfs.txt +++ b/Documentation/filesystems/vfs.txt | |||
@@ -225,7 +225,7 @@ struct super_operations { | |||
225 | void (*clear_inode) (struct inode *); | 225 | void (*clear_inode) (struct inode *); |
226 | void (*umount_begin) (struct super_block *); | 226 | void (*umount_begin) (struct super_block *); |
227 | 227 | ||
228 | int (*show_options)(struct seq_file *, struct vfsmount *); | 228 | int (*show_options)(struct seq_file *, struct dentry *); |
229 | 229 | ||
230 | ssize_t (*quota_read)(struct super_block *, int, char *, size_t, loff_t); | 230 | ssize_t (*quota_read)(struct super_block *, int, char *, size_t, loff_t); |
231 | ssize_t (*quota_write)(struct super_block *, int, const char *, size_t, loff_t); | 231 | ssize_t (*quota_write)(struct super_block *, int, const char *, size_t, loff_t); |
diff --git a/arch/s390/hypfs/inode.c b/arch/s390/hypfs/inode.c index 98efd2d6207a..8a2a887478cc 100644 --- a/arch/s390/hypfs/inode.c +++ b/arch/s390/hypfs/inode.c | |||
@@ -259,9 +259,9 @@ static int hypfs_parse_options(char *options, struct super_block *sb) | |||
259 | return 0; | 259 | return 0; |
260 | } | 260 | } |
261 | 261 | ||
262 | static int hypfs_show_options(struct seq_file *s, struct vfsmount *mnt) | 262 | static int hypfs_show_options(struct seq_file *s, struct dentry *root) |
263 | { | 263 | { |
264 | struct hypfs_sb_info *hypfs_info = mnt->mnt_sb->s_fs_info; | 264 | struct hypfs_sb_info *hypfs_info = root->d_sb->s_fs_info; |
265 | 265 | ||
266 | seq_printf(s, ",uid=%u", hypfs_info->uid); | 266 | seq_printf(s, ",uid=%u", hypfs_info->uid); |
267 | seq_printf(s, ",gid=%u", hypfs_info->gid); | 267 | seq_printf(s, ",gid=%u", hypfs_info->gid); |
diff --git a/drivers/staging/pohmelfs/inode.c b/drivers/staging/pohmelfs/inode.c index 91ec29e112bc..807e3f324113 100644 --- a/drivers/staging/pohmelfs/inode.c +++ b/drivers/staging/pohmelfs/inode.c | |||
@@ -1369,9 +1369,9 @@ static int pohmelfs_statfs(struct dentry *dentry, struct kstatfs *buf) | |||
1369 | return 0; | 1369 | return 0; |
1370 | } | 1370 | } |
1371 | 1371 | ||
1372 | static int pohmelfs_show_options(struct seq_file *seq, struct vfsmount *vfs) | 1372 | static int pohmelfs_show_options(struct seq_file *seq, struct dentry *root) |
1373 | { | 1373 | { |
1374 | struct pohmelfs_sb *psb = POHMELFS_SB(vfs->mnt_sb); | 1374 | struct pohmelfs_sb *psb = POHMELFS_SB(root->d_sb); |
1375 | 1375 | ||
1376 | seq_printf(seq, ",idx=%u", psb->idx); | 1376 | seq_printf(seq, ",idx=%u", psb->idx); |
1377 | seq_printf(seq, ",trans_scan_timeout=%u", jiffies_to_msecs(psb->trans_scan_timeout)); | 1377 | seq_printf(seq, ",trans_scan_timeout=%u", jiffies_to_msecs(psb->trans_scan_timeout)); |
diff --git a/drivers/usb/core/inode.c b/drivers/usb/core/inode.c index 2b60af2ce3ba..9e186f3da839 100644 --- a/drivers/usb/core/inode.c +++ b/drivers/usb/core/inode.c | |||
@@ -65,7 +65,7 @@ static umode_t devmode = USBFS_DEFAULT_DEVMODE; | |||
65 | static umode_t busmode = USBFS_DEFAULT_BUSMODE; | 65 | static umode_t busmode = USBFS_DEFAULT_BUSMODE; |
66 | static umode_t listmode = USBFS_DEFAULT_LISTMODE; | 66 | static umode_t listmode = USBFS_DEFAULT_LISTMODE; |
67 | 67 | ||
68 | static int usbfs_show_options(struct seq_file *seq, struct vfsmount *mnt) | 68 | static int usbfs_show_options(struct seq_file *seq, struct dentry *root) |
69 | { | 69 | { |
70 | if (devuid != 0) | 70 | if (devuid != 0) |
71 | seq_printf(seq, ",devuid=%u", devuid); | 71 | seq_printf(seq, ",devuid=%u", devuid); |
diff --git a/fs/adfs/super.c b/fs/adfs/super.c index c8bf36a1996a..8e3b36ace305 100644 --- a/fs/adfs/super.c +++ b/fs/adfs/super.c | |||
@@ -126,9 +126,9 @@ static void adfs_put_super(struct super_block *sb) | |||
126 | sb->s_fs_info = NULL; | 126 | sb->s_fs_info = NULL; |
127 | } | 127 | } |
128 | 128 | ||
129 | static int adfs_show_options(struct seq_file *seq, struct vfsmount *mnt) | 129 | static int adfs_show_options(struct seq_file *seq, struct dentry *root) |
130 | { | 130 | { |
131 | struct adfs_sb_info *asb = ADFS_SB(mnt->mnt_sb); | 131 | struct adfs_sb_info *asb = ADFS_SB(root->d_sb); |
132 | 132 | ||
133 | if (asb->s_uid != 0) | 133 | if (asb->s_uid != 0) |
134 | seq_printf(seq, ",uid=%u", asb->s_uid); | 134 | seq_printf(seq, ",uid=%u", asb->s_uid); |
diff --git a/fs/autofs4/inode.c b/fs/autofs4/inode.c index f799efad52a8..2ba44c79d548 100644 --- a/fs/autofs4/inode.c +++ b/fs/autofs4/inode.c | |||
@@ -70,10 +70,10 @@ out_kill_sb: | |||
70 | kill_litter_super(sb); | 70 | kill_litter_super(sb); |
71 | } | 71 | } |
72 | 72 | ||
73 | static int autofs4_show_options(struct seq_file *m, struct vfsmount *mnt) | 73 | static int autofs4_show_options(struct seq_file *m, struct dentry *root) |
74 | { | 74 | { |
75 | struct autofs_sb_info *sbi = autofs4_sbi(mnt->mnt_sb); | 75 | struct autofs_sb_info *sbi = autofs4_sbi(root->d_sb); |
76 | struct inode *root_inode = mnt->mnt_sb->s_root->d_inode; | 76 | struct inode *root_inode = root->d_sb->s_root->d_inode; |
77 | 77 | ||
78 | if (!sbi) | 78 | if (!sbi) |
79 | return 0; | 79 | return 0; |
diff --git a/fs/btrfs/super.c b/fs/btrfs/super.c index dc62d3cc68fd..ae488aa1966a 100644 --- a/fs/btrfs/super.c +++ b/fs/btrfs/super.c | |||
@@ -661,9 +661,9 @@ int btrfs_sync_fs(struct super_block *sb, int wait) | |||
661 | return ret; | 661 | return ret; |
662 | } | 662 | } |
663 | 663 | ||
664 | static int btrfs_show_options(struct seq_file *seq, struct vfsmount *vfs) | 664 | static int btrfs_show_options(struct seq_file *seq, struct dentry *dentry) |
665 | { | 665 | { |
666 | struct btrfs_root *root = btrfs_sb(vfs->mnt_sb); | 666 | struct btrfs_root *root = btrfs_sb(dentry->d_sb); |
667 | struct btrfs_fs_info *info = root->fs_info; | 667 | struct btrfs_fs_info *info = root->fs_info; |
668 | char *compress_type; | 668 | char *compress_type; |
669 | 669 | ||
diff --git a/fs/ceph/super.c b/fs/ceph/super.c index b48f15f101a0..11bd0fc4853f 100644 --- a/fs/ceph/super.c +++ b/fs/ceph/super.c | |||
@@ -341,11 +341,11 @@ out: | |||
341 | /** | 341 | /** |
342 | * ceph_show_options - Show mount options in /proc/mounts | 342 | * ceph_show_options - Show mount options in /proc/mounts |
343 | * @m: seq_file to write to | 343 | * @m: seq_file to write to |
344 | * @mnt: mount descriptor | 344 | * @root: root of that (sub)tree |
345 | */ | 345 | */ |
346 | static int ceph_show_options(struct seq_file *m, struct vfsmount *mnt) | 346 | static int ceph_show_options(struct seq_file *m, struct dentry *root) |
347 | { | 347 | { |
348 | struct ceph_fs_client *fsc = ceph_sb_to_client(mnt->mnt_sb); | 348 | struct ceph_fs_client *fsc = ceph_sb_to_client(root->d_sb); |
349 | struct ceph_mount_options *fsopt = fsc->mount_options; | 349 | struct ceph_mount_options *fsopt = fsc->mount_options; |
350 | struct ceph_options *opt = fsc->client->options; | 350 | struct ceph_options *opt = fsc->client->options; |
351 | 351 | ||
diff --git a/fs/cifs/cifsfs.c b/fs/cifs/cifsfs.c index 0cb89dc6526c..b1fd382d1952 100644 --- a/fs/cifs/cifsfs.c +++ b/fs/cifs/cifsfs.c | |||
@@ -343,9 +343,9 @@ cifs_show_security(struct seq_file *s, struct TCP_Server_Info *server) | |||
343 | * ones are. | 343 | * ones are. |
344 | */ | 344 | */ |
345 | static int | 345 | static int |
346 | cifs_show_options(struct seq_file *s, struct vfsmount *m) | 346 | cifs_show_options(struct seq_file *s, struct dentry *root) |
347 | { | 347 | { |
348 | struct cifs_sb_info *cifs_sb = CIFS_SB(m->mnt_sb); | 348 | struct cifs_sb_info *cifs_sb = CIFS_SB(root->d_sb); |
349 | struct cifs_tcon *tcon = cifs_sb_master_tcon(cifs_sb); | 349 | struct cifs_tcon *tcon = cifs_sb_master_tcon(cifs_sb); |
350 | struct sockaddr *srcaddr; | 350 | struct sockaddr *srcaddr; |
351 | srcaddr = (struct sockaddr *)&tcon->ses->server->srcaddr; | 351 | srcaddr = (struct sockaddr *)&tcon->ses->server->srcaddr; |
@@ -430,7 +430,7 @@ cifs_show_options(struct seq_file *s, struct vfsmount *m) | |||
430 | seq_printf(s, ",cifsacl"); | 430 | seq_printf(s, ",cifsacl"); |
431 | if (cifs_sb->mnt_cifs_flags & CIFS_MOUNT_DYNPERM) | 431 | if (cifs_sb->mnt_cifs_flags & CIFS_MOUNT_DYNPERM) |
432 | seq_printf(s, ",dynperm"); | 432 | seq_printf(s, ",dynperm"); |
433 | if (m->mnt_sb->s_flags & MS_POSIXACL) | 433 | if (root->d_sb->s_flags & MS_POSIXACL) |
434 | seq_printf(s, ",acl"); | 434 | seq_printf(s, ",acl"); |
435 | if (cifs_sb->mnt_cifs_flags & CIFS_MOUNT_MF_SYMLINKS) | 435 | if (cifs_sb->mnt_cifs_flags & CIFS_MOUNT_MF_SYMLINKS) |
436 | seq_printf(s, ",mfsymlinks"); | 436 | seq_printf(s, ",mfsymlinks"); |
diff --git a/fs/devpts/inode.c b/fs/devpts/inode.c index d5d5297efe97..79673eb71151 100644 --- a/fs/devpts/inode.c +++ b/fs/devpts/inode.c | |||
@@ -246,9 +246,9 @@ static int devpts_remount(struct super_block *sb, int *flags, char *data) | |||
246 | return err; | 246 | return err; |
247 | } | 247 | } |
248 | 248 | ||
249 | static int devpts_show_options(struct seq_file *seq, struct vfsmount *vfs) | 249 | static int devpts_show_options(struct seq_file *seq, struct dentry *root) |
250 | { | 250 | { |
251 | struct pts_fs_info *fsi = DEVPTS_SB(vfs->mnt_sb); | 251 | struct pts_fs_info *fsi = DEVPTS_SB(root->d_sb); |
252 | struct pts_mount_opts *opts = &fsi->mount_opts; | 252 | struct pts_mount_opts *opts = &fsi->mount_opts; |
253 | 253 | ||
254 | if (opts->setuid) | 254 | if (opts->setuid) |
diff --git a/fs/ecryptfs/super.c b/fs/ecryptfs/super.c index da485f0b4d1e..9df7fd6e0c39 100644 --- a/fs/ecryptfs/super.c +++ b/fs/ecryptfs/super.c | |||
@@ -131,9 +131,9 @@ static void ecryptfs_evict_inode(struct inode *inode) | |||
131 | * Prints the mount options for a given superblock. | 131 | * Prints the mount options for a given superblock. |
132 | * Returns zero; does not fail. | 132 | * Returns zero; does not fail. |
133 | */ | 133 | */ |
134 | static int ecryptfs_show_options(struct seq_file *m, struct vfsmount *mnt) | 134 | static int ecryptfs_show_options(struct seq_file *m, struct dentry *root) |
135 | { | 135 | { |
136 | struct super_block *sb = mnt->mnt_sb; | 136 | struct super_block *sb = root->d_sb; |
137 | struct ecryptfs_mount_crypt_stat *mount_crypt_stat = | 137 | struct ecryptfs_mount_crypt_stat *mount_crypt_stat = |
138 | &ecryptfs_superblock_to_private(sb)->mount_crypt_stat; | 138 | &ecryptfs_superblock_to_private(sb)->mount_crypt_stat; |
139 | struct ecryptfs_global_auth_tok *walker; | 139 | struct ecryptfs_global_auth_tok *walker; |
diff --git a/fs/ext2/super.c b/fs/ext2/super.c index 67b5e752ec9d..9b403f064ce0 100644 --- a/fs/ext2/super.c +++ b/fs/ext2/super.c | |||
@@ -210,9 +210,9 @@ static void destroy_inodecache(void) | |||
210 | kmem_cache_destroy(ext2_inode_cachep); | 210 | kmem_cache_destroy(ext2_inode_cachep); |
211 | } | 211 | } |
212 | 212 | ||
213 | static int ext2_show_options(struct seq_file *seq, struct vfsmount *vfs) | 213 | static int ext2_show_options(struct seq_file *seq, struct dentry *root) |
214 | { | 214 | { |
215 | struct super_block *sb = vfs->mnt_sb; | 215 | struct super_block *sb = root->d_sb; |
216 | struct ext2_sb_info *sbi = EXT2_SB(sb); | 216 | struct ext2_sb_info *sbi = EXT2_SB(sb); |
217 | struct ext2_super_block *es = sbi->s_es; | 217 | struct ext2_super_block *es = sbi->s_es; |
218 | unsigned long def_mount_opts; | 218 | unsigned long def_mount_opts; |
diff --git a/fs/ext3/super.c b/fs/ext3/super.c index 7e8944ee67c6..3a10b884e1be 100644 --- a/fs/ext3/super.c +++ b/fs/ext3/super.c | |||
@@ -610,9 +610,9 @@ static char *data_mode_string(unsigned long mode) | |||
610 | * - it's set to a non-default value OR | 610 | * - it's set to a non-default value OR |
611 | * - if the per-sb default is different from the global default | 611 | * - if the per-sb default is different from the global default |
612 | */ | 612 | */ |
613 | static int ext3_show_options(struct seq_file *seq, struct vfsmount *vfs) | 613 | static int ext3_show_options(struct seq_file *seq, struct dentry *root) |
614 | { | 614 | { |
615 | struct super_block *sb = vfs->mnt_sb; | 615 | struct super_block *sb = root->d_sb; |
616 | struct ext3_sb_info *sbi = EXT3_SB(sb); | 616 | struct ext3_sb_info *sbi = EXT3_SB(sb); |
617 | struct ext3_super_block *es = sbi->s_es; | 617 | struct ext3_super_block *es = sbi->s_es; |
618 | unsigned long def_mount_opts; | 618 | unsigned long def_mount_opts; |
diff --git a/fs/ext4/super.c b/fs/ext4/super.c index b739b210a616..6733b3736b3b 100644 --- a/fs/ext4/super.c +++ b/fs/ext4/super.c | |||
@@ -1032,11 +1032,11 @@ static inline void ext4_show_quota_options(struct seq_file *seq, | |||
1032 | * - it's set to a non-default value OR | 1032 | * - it's set to a non-default value OR |
1033 | * - if the per-sb default is different from the global default | 1033 | * - if the per-sb default is different from the global default |
1034 | */ | 1034 | */ |
1035 | static int ext4_show_options(struct seq_file *seq, struct vfsmount *vfs) | 1035 | static int ext4_show_options(struct seq_file *seq, struct dentry *root) |
1036 | { | 1036 | { |
1037 | int def_errors; | 1037 | int def_errors; |
1038 | unsigned long def_mount_opts; | 1038 | unsigned long def_mount_opts; |
1039 | struct super_block *sb = vfs->mnt_sb; | 1039 | struct super_block *sb = root->d_sb; |
1040 | struct ext4_sb_info *sbi = EXT4_SB(sb); | 1040 | struct ext4_sb_info *sbi = EXT4_SB(sb); |
1041 | struct ext4_super_block *es = sbi->s_es; | 1041 | struct ext4_super_block *es = sbi->s_es; |
1042 | 1042 | ||
diff --git a/fs/fat/inode.c b/fs/fat/inode.c index ef44e5f98ced..7873797cc76a 100644 --- a/fs/fat/inode.c +++ b/fs/fat/inode.c | |||
@@ -671,7 +671,7 @@ int fat_sync_inode(struct inode *inode) | |||
671 | 671 | ||
672 | EXPORT_SYMBOL_GPL(fat_sync_inode); | 672 | EXPORT_SYMBOL_GPL(fat_sync_inode); |
673 | 673 | ||
674 | static int fat_show_options(struct seq_file *m, struct vfsmount *mnt); | 674 | static int fat_show_options(struct seq_file *m, struct dentry *root); |
675 | static const struct super_operations fat_sops = { | 675 | static const struct super_operations fat_sops = { |
676 | .alloc_inode = fat_alloc_inode, | 676 | .alloc_inode = fat_alloc_inode, |
677 | .destroy_inode = fat_destroy_inode, | 677 | .destroy_inode = fat_destroy_inode, |
@@ -810,9 +810,9 @@ static const struct export_operations fat_export_ops = { | |||
810 | .get_parent = fat_get_parent, | 810 | .get_parent = fat_get_parent, |
811 | }; | 811 | }; |
812 | 812 | ||
813 | static int fat_show_options(struct seq_file *m, struct vfsmount *mnt) | 813 | static int fat_show_options(struct seq_file *m, struct dentry *root) |
814 | { | 814 | { |
815 | struct msdos_sb_info *sbi = MSDOS_SB(mnt->mnt_sb); | 815 | struct msdos_sb_info *sbi = MSDOS_SB(root->d_sb); |
816 | struct fat_mount_options *opts = &sbi->options; | 816 | struct fat_mount_options *opts = &sbi->options; |
817 | int isvfat = opts->isvfat; | 817 | int isvfat = opts->isvfat; |
818 | 818 | ||
diff --git a/fs/fuse/inode.c b/fs/fuse/inode.c index 3d3622a1ceac..64cf8d07393e 100644 --- a/fs/fuse/inode.c +++ b/fs/fuse/inode.c | |||
@@ -497,9 +497,10 @@ static int parse_fuse_opt(char *opt, struct fuse_mount_data *d, int is_bdev) | |||
497 | return 1; | 497 | return 1; |
498 | } | 498 | } |
499 | 499 | ||
500 | static int fuse_show_options(struct seq_file *m, struct vfsmount *mnt) | 500 | static int fuse_show_options(struct seq_file *m, struct dentry *root) |
501 | { | 501 | { |
502 | struct fuse_conn *fc = get_fuse_conn_super(mnt->mnt_sb); | 502 | struct super_block *sb = root->d_sb; |
503 | struct fuse_conn *fc = get_fuse_conn_super(sb); | ||
503 | 504 | ||
504 | seq_printf(m, ",user_id=%u", fc->user_id); | 505 | seq_printf(m, ",user_id=%u", fc->user_id); |
505 | seq_printf(m, ",group_id=%u", fc->group_id); | 506 | 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 | seq_puts(m, ",allow_other"); | 510 | seq_puts(m, ",allow_other"); |
510 | if (fc->max_read != ~0) | 511 | if (fc->max_read != ~0) |
511 | seq_printf(m, ",max_read=%u", fc->max_read); | 512 | seq_printf(m, ",max_read=%u", fc->max_read); |
512 | if (mnt->mnt_sb->s_bdev && | 513 | if (sb->s_bdev && sb->s_blocksize != FUSE_DEFAULT_BLKSIZE) |
513 | mnt->mnt_sb->s_blocksize != FUSE_DEFAULT_BLKSIZE) | 514 | seq_printf(m, ",blksize=%lu", sb->s_blocksize); |
514 | seq_printf(m, ",blksize=%lu", mnt->mnt_sb->s_blocksize); | ||
515 | return 0; | 515 | return 0; |
516 | } | 516 | } |
517 | 517 | ||
diff --git a/fs/gfs2/super.c b/fs/gfs2/super.c index 9e89d94be003..10c7733a899b 100644 --- a/fs/gfs2/super.c +++ b/fs/gfs2/super.c | |||
@@ -1284,18 +1284,18 @@ static int is_ancestor(const struct dentry *d1, const struct dentry *d2) | |||
1284 | /** | 1284 | /** |
1285 | * gfs2_show_options - Show mount options for /proc/mounts | 1285 | * gfs2_show_options - Show mount options for /proc/mounts |
1286 | * @s: seq_file structure | 1286 | * @s: seq_file structure |
1287 | * @mnt: vfsmount | 1287 | * @root: root of this (sub)tree |
1288 | * | 1288 | * |
1289 | * Returns: 0 on success or error code | 1289 | * Returns: 0 on success or error code |
1290 | */ | 1290 | */ |
1291 | 1291 | ||
1292 | static int gfs2_show_options(struct seq_file *s, struct vfsmount *mnt) | 1292 | static int gfs2_show_options(struct seq_file *s, struct dentry *root) |
1293 | { | 1293 | { |
1294 | struct gfs2_sbd *sdp = mnt->mnt_sb->s_fs_info; | 1294 | struct gfs2_sbd *sdp = root->d_sb->s_fs_info; |
1295 | struct gfs2_args *args = &sdp->sd_args; | 1295 | struct gfs2_args *args = &sdp->sd_args; |
1296 | int val; | 1296 | int val; |
1297 | 1297 | ||
1298 | if (is_ancestor(mnt->mnt_root, sdp->sd_master_dir)) | 1298 | if (is_ancestor(root, sdp->sd_master_dir)) |
1299 | seq_printf(s, ",meta"); | 1299 | seq_printf(s, ",meta"); |
1300 | if (args->ar_lockproto[0]) | 1300 | if (args->ar_lockproto[0]) |
1301 | seq_printf(s, ",lockproto=%s", args->ar_lockproto); | 1301 | seq_printf(s, ",lockproto=%s", args->ar_lockproto); |
diff --git a/fs/hfs/super.c b/fs/hfs/super.c index 32dc2fbb26d5..8137fb3e6780 100644 --- a/fs/hfs/super.c +++ b/fs/hfs/super.c | |||
@@ -133,9 +133,9 @@ static int hfs_remount(struct super_block *sb, int *flags, char *data) | |||
133 | return 0; | 133 | return 0; |
134 | } | 134 | } |
135 | 135 | ||
136 | static int hfs_show_options(struct seq_file *seq, struct vfsmount *mnt) | 136 | static int hfs_show_options(struct seq_file *seq, struct dentry *root) |
137 | { | 137 | { |
138 | struct hfs_sb_info *sbi = HFS_SB(mnt->mnt_sb); | 138 | struct hfs_sb_info *sbi = HFS_SB(root->d_sb); |
139 | 139 | ||
140 | if (sbi->s_creator != cpu_to_be32(0x3f3f3f3f)) | 140 | if (sbi->s_creator != cpu_to_be32(0x3f3f3f3f)) |
141 | seq_printf(seq, ",creator=%.4s", (char *)&sbi->s_creator); | 141 | seq_printf(seq, ",creator=%.4s", (char *)&sbi->s_creator); |
diff --git a/fs/hfsplus/hfsplus_fs.h b/fs/hfsplus/hfsplus_fs.h index 3a6c025414e2..21a5b7fc6db4 100644 --- a/fs/hfsplus/hfsplus_fs.h +++ b/fs/hfsplus/hfsplus_fs.h | |||
@@ -419,7 +419,7 @@ ssize_t hfsplus_listxattr(struct dentry *dentry, char *buffer, size_t size); | |||
419 | int hfsplus_parse_options(char *, struct hfsplus_sb_info *); | 419 | int hfsplus_parse_options(char *, struct hfsplus_sb_info *); |
420 | int hfsplus_parse_options_remount(char *input, int *force); | 420 | int hfsplus_parse_options_remount(char *input, int *force); |
421 | void hfsplus_fill_defaults(struct hfsplus_sb_info *); | 421 | void hfsplus_fill_defaults(struct hfsplus_sb_info *); |
422 | int hfsplus_show_options(struct seq_file *, struct vfsmount *); | 422 | int hfsplus_show_options(struct seq_file *, struct dentry *); |
423 | 423 | ||
424 | /* super.c */ | 424 | /* super.c */ |
425 | struct inode *hfsplus_iget(struct super_block *, unsigned long); | 425 | struct inode *hfsplus_iget(struct super_block *, unsigned long); |
diff --git a/fs/hfsplus/options.c b/fs/hfsplus/options.c index bb62a5882147..06fa5618600c 100644 --- a/fs/hfsplus/options.c +++ b/fs/hfsplus/options.c | |||
@@ -206,9 +206,9 @@ done: | |||
206 | return 1; | 206 | return 1; |
207 | } | 207 | } |
208 | 208 | ||
209 | int hfsplus_show_options(struct seq_file *seq, struct vfsmount *mnt) | 209 | int hfsplus_show_options(struct seq_file *seq, struct dentry *root) |
210 | { | 210 | { |
211 | struct hfsplus_sb_info *sbi = HFSPLUS_SB(mnt->mnt_sb); | 211 | struct hfsplus_sb_info *sbi = HFSPLUS_SB(root->d_sb); |
212 | 212 | ||
213 | if (sbi->creator != HFSPLUS_DEF_CR_TYPE) | 213 | if (sbi->creator != HFSPLUS_DEF_CR_TYPE) |
214 | seq_printf(seq, ",creator=%.4s", (char *)&sbi->creator); | 214 | seq_printf(seq, ",creator=%.4s", (char *)&sbi->creator); |
diff --git a/fs/hostfs/hostfs_kern.c b/fs/hostfs/hostfs_kern.c index a7340e710a90..e130bd46d671 100644 --- a/fs/hostfs/hostfs_kern.c +++ b/fs/hostfs/hostfs_kern.c | |||
@@ -258,9 +258,9 @@ static void hostfs_destroy_inode(struct inode *inode) | |||
258 | call_rcu(&inode->i_rcu, hostfs_i_callback); | 258 | call_rcu(&inode->i_rcu, hostfs_i_callback); |
259 | } | 259 | } |
260 | 260 | ||
261 | static int hostfs_show_options(struct seq_file *seq, struct vfsmount *vfs) | 261 | static int hostfs_show_options(struct seq_file *seq, struct dentry *root) |
262 | { | 262 | { |
263 | const char *root_path = vfs->mnt_sb->s_fs_info; | 263 | const char *root_path = root->d_sb->s_fs_info; |
264 | size_t offset = strlen(root_ino) + 1; | 264 | size_t offset = strlen(root_ino) + 1; |
265 | 265 | ||
266 | if (strlen(root_path) > offset) | 266 | if (strlen(root_path) > offset) |
diff --git a/fs/jffs2/super.c b/fs/jffs2/super.c index 804e1292d63e..8be4925296cf 100644 --- a/fs/jffs2/super.c +++ b/fs/jffs2/super.c | |||
@@ -96,9 +96,9 @@ static const char *jffs2_compr_name(unsigned int compr) | |||
96 | } | 96 | } |
97 | } | 97 | } |
98 | 98 | ||
99 | static int jffs2_show_options(struct seq_file *s, struct vfsmount *mnt) | 99 | static int jffs2_show_options(struct seq_file *s, struct dentry *root) |
100 | { | 100 | { |
101 | struct jffs2_sb_info *c = JFFS2_SB_INFO(mnt->mnt_sb); | 101 | struct jffs2_sb_info *c = JFFS2_SB_INFO(root->d_sb); |
102 | struct jffs2_mount_opts *opts = &c->mount_opts; | 102 | struct jffs2_mount_opts *opts = &c->mount_opts; |
103 | 103 | ||
104 | if (opts->override_compr) | 104 | if (opts->override_compr) |
diff --git a/fs/jfs/super.c b/fs/jfs/super.c index 1b8f4ca29adf..682bca642f38 100644 --- a/fs/jfs/super.c +++ b/fs/jfs/super.c | |||
@@ -608,9 +608,9 @@ static int jfs_sync_fs(struct super_block *sb, int wait) | |||
608 | return 0; | 608 | return 0; |
609 | } | 609 | } |
610 | 610 | ||
611 | static int jfs_show_options(struct seq_file *seq, struct vfsmount *vfs) | 611 | static int jfs_show_options(struct seq_file *seq, struct dentry *root) |
612 | { | 612 | { |
613 | struct jfs_sb_info *sbi = JFS_SBI(vfs->mnt_sb); | 613 | struct jfs_sb_info *sbi = JFS_SBI(root->d_sb); |
614 | 614 | ||
615 | if (sbi->uid != -1) | 615 | if (sbi->uid != -1) |
616 | seq_printf(seq, ",uid=%d", sbi->uid); | 616 | seq_printf(seq, ",uid=%d", sbi->uid); |
diff --git a/fs/namespace.c b/fs/namespace.c index 773435ca300d..db65e2e4921f 100644 --- a/fs/namespace.c +++ b/fs/namespace.c | |||
@@ -836,12 +836,12 @@ static inline void mangle(struct seq_file *m, const char *s) | |||
836 | * | 836 | * |
837 | * See also save_mount_options(). | 837 | * See also save_mount_options(). |
838 | */ | 838 | */ |
839 | int generic_show_options(struct seq_file *m, struct vfsmount *mnt) | 839 | int generic_show_options(struct seq_file *m, struct dentry *root) |
840 | { | 840 | { |
841 | const char *options; | 841 | const char *options; |
842 | 842 | ||
843 | rcu_read_lock(); | 843 | rcu_read_lock(); |
844 | options = rcu_dereference(mnt->mnt_sb->s_options); | 844 | options = rcu_dereference(root->d_sb->s_options); |
845 | 845 | ||
846 | if (options != NULL && options[0]) { | 846 | if (options != NULL && options[0]) { |
847 | seq_putc(m, ','); | 847 | seq_putc(m, ','); |
diff --git a/fs/ncpfs/inode.c b/fs/ncpfs/inode.c index f3f07cd392b3..3d1e34f8a68e 100644 --- a/fs/ncpfs/inode.c +++ b/fs/ncpfs/inode.c | |||
@@ -44,7 +44,7 @@ | |||
44 | static void ncp_evict_inode(struct inode *); | 44 | static void ncp_evict_inode(struct inode *); |
45 | static void ncp_put_super(struct super_block *); | 45 | static void ncp_put_super(struct super_block *); |
46 | static int ncp_statfs(struct dentry *, struct kstatfs *); | 46 | static int ncp_statfs(struct dentry *, struct kstatfs *); |
47 | static int ncp_show_options(struct seq_file *, struct vfsmount *); | 47 | static int ncp_show_options(struct seq_file *, struct dentry *); |
48 | 48 | ||
49 | static struct kmem_cache * ncp_inode_cachep; | 49 | static struct kmem_cache * ncp_inode_cachep; |
50 | 50 | ||
@@ -322,9 +322,9 @@ static void ncp_stop_tasks(struct ncp_server *server) { | |||
322 | flush_work_sync(&server->timeout_tq); | 322 | flush_work_sync(&server->timeout_tq); |
323 | } | 323 | } |
324 | 324 | ||
325 | static int ncp_show_options(struct seq_file *seq, struct vfsmount *mnt) | 325 | static int ncp_show_options(struct seq_file *seq, struct dentry *root) |
326 | { | 326 | { |
327 | struct ncp_server *server = NCP_SBP(mnt->mnt_sb); | 327 | struct ncp_server *server = NCP_SBP(root->d_sb); |
328 | unsigned int tmp; | 328 | unsigned int tmp; |
329 | 329 | ||
330 | if (server->m.uid != 0) | 330 | if (server->m.uid != 0) |
diff --git a/fs/nfs/super.c b/fs/nfs/super.c index 02c693c77ab7..e463967aafb8 100644 --- a/fs/nfs/super.c +++ b/fs/nfs/super.c | |||
@@ -262,7 +262,7 @@ static match_table_t nfs_local_lock_tokens = { | |||
262 | 262 | ||
263 | static void nfs_umount_begin(struct super_block *); | 263 | static void nfs_umount_begin(struct super_block *); |
264 | static int nfs_statfs(struct dentry *, struct kstatfs *); | 264 | static int nfs_statfs(struct dentry *, struct kstatfs *); |
265 | static int nfs_show_options(struct seq_file *, struct vfsmount *); | 265 | static int nfs_show_options(struct seq_file *, struct dentry *); |
266 | static int nfs_show_devname(struct seq_file *, struct dentry *); | 266 | static int nfs_show_devname(struct seq_file *, struct dentry *); |
267 | static int nfs_show_path(struct seq_file *, struct dentry *); | 267 | static int nfs_show_path(struct seq_file *, struct dentry *); |
268 | static int nfs_show_stats(struct seq_file *, struct dentry *); | 268 | 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 | /* | 720 | /* |
721 | * Describe the mount options on this VFS mountpoint | 721 | * Describe the mount options on this VFS mountpoint |
722 | */ | 722 | */ |
723 | static int nfs_show_options(struct seq_file *m, struct vfsmount *mnt) | 723 | static int nfs_show_options(struct seq_file *m, struct dentry *root) |
724 | { | 724 | { |
725 | struct nfs_server *nfss = NFS_SB(mnt->mnt_sb); | 725 | struct nfs_server *nfss = NFS_SB(root->d_sb); |
726 | 726 | ||
727 | nfs_show_mount_options(m, nfss, 0); | 727 | nfs_show_mount_options(m, nfss, 0); |
728 | 728 | ||
diff --git a/fs/nilfs2/super.c b/fs/nilfs2/super.c index 5356c7169d50..08e3d4f9df18 100644 --- a/fs/nilfs2/super.c +++ b/fs/nilfs2/super.c | |||
@@ -648,11 +648,11 @@ static int nilfs_statfs(struct dentry *dentry, struct kstatfs *buf) | |||
648 | return 0; | 648 | return 0; |
649 | } | 649 | } |
650 | 650 | ||
651 | static int nilfs_show_options(struct seq_file *seq, struct vfsmount *vfs) | 651 | static int nilfs_show_options(struct seq_file *seq, struct dentry *dentry) |
652 | { | 652 | { |
653 | struct super_block *sb = vfs->mnt_sb; | 653 | struct super_block *sb = dentry->d_sb; |
654 | struct the_nilfs *nilfs = sb->s_fs_info; | 654 | struct the_nilfs *nilfs = sb->s_fs_info; |
655 | struct nilfs_root *root = NILFS_I(vfs->mnt_root->d_inode)->i_root; | 655 | struct nilfs_root *root = NILFS_I(dentry->d_inode)->i_root; |
656 | 656 | ||
657 | if (!nilfs_test_opt(nilfs, BARRIER)) | 657 | if (!nilfs_test_opt(nilfs, BARRIER)) |
658 | seq_puts(seq, ",nobarrier"); | 658 | seq_puts(seq, ",nobarrier"); |
diff --git a/fs/ntfs/inode.c b/fs/ntfs/inode.c index fea40bb6fb68..2eaa66652944 100644 --- a/fs/ntfs/inode.c +++ b/fs/ntfs/inode.c | |||
@@ -2300,16 +2300,16 @@ void ntfs_evict_big_inode(struct inode *vi) | |||
2300 | /** | 2300 | /** |
2301 | * ntfs_show_options - show mount options in /proc/mounts | 2301 | * ntfs_show_options - show mount options in /proc/mounts |
2302 | * @sf: seq_file in which to write our mount options | 2302 | * @sf: seq_file in which to write our mount options |
2303 | * @mnt: vfs mount whose mount options to display | 2303 | * @root: root of the mounted tree whose mount options to display |
2304 | * | 2304 | * |
2305 | * Called by the VFS once for each mounted ntfs volume when someone reads | 2305 | * Called by the VFS once for each mounted ntfs volume when someone reads |
2306 | * /proc/mounts in order to display the NTFS specific mount options of each | 2306 | * /proc/mounts in order to display the NTFS specific mount options of each |
2307 | * mount. The mount options of the vfs mount @mnt are written to the seq file | 2307 | * mount. The mount options of fs specified by @root are written to the seq file |
2308 | * @sf and success is returned. | 2308 | * @sf and success is returned. |
2309 | */ | 2309 | */ |
2310 | int ntfs_show_options(struct seq_file *sf, struct vfsmount *mnt) | 2310 | int ntfs_show_options(struct seq_file *sf, struct dentry *root) |
2311 | { | 2311 | { |
2312 | ntfs_volume *vol = NTFS_SB(mnt->mnt_sb); | 2312 | ntfs_volume *vol = NTFS_SB(root->d_sb); |
2313 | int i; | 2313 | int i; |
2314 | 2314 | ||
2315 | seq_printf(sf, ",uid=%i", vol->uid); | 2315 | seq_printf(sf, ",uid=%i", vol->uid); |
diff --git a/fs/ntfs/inode.h b/fs/ntfs/inode.h index fe8e7e928889..db29695f845c 100644 --- a/fs/ntfs/inode.h +++ b/fs/ntfs/inode.h | |||
@@ -298,7 +298,7 @@ extern void ntfs_clear_extent_inode(ntfs_inode *ni); | |||
298 | 298 | ||
299 | extern int ntfs_read_inode_mount(struct inode *vi); | 299 | extern int ntfs_read_inode_mount(struct inode *vi); |
300 | 300 | ||
301 | extern int ntfs_show_options(struct seq_file *sf, struct vfsmount *mnt); | 301 | extern int ntfs_show_options(struct seq_file *sf, struct dentry *root); |
302 | 302 | ||
303 | #ifdef NTFS_RW | 303 | #ifdef NTFS_RW |
304 | 304 | ||
diff --git a/fs/ocfs2/super.c b/fs/ocfs2/super.c index c05ff25c356c..604e12c4e979 100644 --- a/fs/ocfs2/super.c +++ b/fs/ocfs2/super.c | |||
@@ -108,7 +108,7 @@ static int ocfs2_parse_options(struct super_block *sb, char *options, | |||
108 | int is_remount); | 108 | int is_remount); |
109 | static int ocfs2_check_set_options(struct super_block *sb, | 109 | static int ocfs2_check_set_options(struct super_block *sb, |
110 | struct mount_options *options); | 110 | struct mount_options *options); |
111 | static int ocfs2_show_options(struct seq_file *s, struct vfsmount *mnt); | 111 | static int ocfs2_show_options(struct seq_file *s, struct dentry *root); |
112 | static void ocfs2_put_super(struct super_block *sb); | 112 | static void ocfs2_put_super(struct super_block *sb); |
113 | static int ocfs2_mount_volume(struct super_block *sb); | 113 | static int ocfs2_mount_volume(struct super_block *sb); |
114 | static int ocfs2_remount(struct super_block *sb, int *flags, char *data); | 114 | static int ocfs2_remount(struct super_block *sb, int *flags, char *data); |
@@ -1533,9 +1533,9 @@ bail: | |||
1533 | return status; | 1533 | return status; |
1534 | } | 1534 | } |
1535 | 1535 | ||
1536 | static int ocfs2_show_options(struct seq_file *s, struct vfsmount *mnt) | 1536 | static int ocfs2_show_options(struct seq_file *s, struct dentry *root) |
1537 | { | 1537 | { |
1538 | struct ocfs2_super *osb = OCFS2_SB(mnt->mnt_sb); | 1538 | struct ocfs2_super *osb = OCFS2_SB(root->d_sb); |
1539 | unsigned long opts = osb->s_mount_opt; | 1539 | unsigned long opts = osb->s_mount_opt; |
1540 | unsigned int local_alloc_megs; | 1540 | unsigned int local_alloc_megs; |
1541 | 1541 | ||
@@ -1567,8 +1567,7 @@ static int ocfs2_show_options(struct seq_file *s, struct vfsmount *mnt) | |||
1567 | if (osb->preferred_slot != OCFS2_INVALID_SLOT) | 1567 | if (osb->preferred_slot != OCFS2_INVALID_SLOT) |
1568 | seq_printf(s, ",preferred_slot=%d", osb->preferred_slot); | 1568 | seq_printf(s, ",preferred_slot=%d", osb->preferred_slot); |
1569 | 1569 | ||
1570 | if (!(mnt->mnt_flags & MNT_NOATIME) && !(mnt->mnt_flags & MNT_RELATIME)) | 1570 | seq_printf(s, ",atime_quantum=%u", osb->s_atime_quantum); |
1571 | seq_printf(s, ",atime_quantum=%u", osb->s_atime_quantum); | ||
1572 | 1571 | ||
1573 | if (osb->osb_commit_interval) | 1572 | if (osb->osb_commit_interval) |
1574 | seq_printf(s, ",commit=%u", | 1573 | seq_printf(s, ",commit=%u", |
diff --git a/fs/proc_namespace.c b/fs/proc_namespace.c index 8f8304b3f98a..12412852d88a 100644 --- a/fs/proc_namespace.c +++ b/fs/proc_namespace.c | |||
@@ -113,7 +113,7 @@ static int show_vfsmnt(struct seq_file *m, struct vfsmount *mnt) | |||
113 | goto out; | 113 | goto out; |
114 | show_mnt_opts(m, mnt); | 114 | show_mnt_opts(m, mnt); |
115 | if (sb->s_op->show_options) | 115 | if (sb->s_op->show_options) |
116 | err = sb->s_op->show_options(m, mnt); | 116 | err = sb->s_op->show_options(m, mnt_path.dentry); |
117 | seq_puts(m, " 0 0\n"); | 117 | seq_puts(m, " 0 0\n"); |
118 | out: | 118 | out: |
119 | return err; | 119 | return err; |
@@ -174,7 +174,7 @@ static int show_mountinfo(struct seq_file *m, struct vfsmount *mnt) | |||
174 | if (err) | 174 | if (err) |
175 | goto out; | 175 | goto out; |
176 | if (sb->s_op->show_options) | 176 | if (sb->s_op->show_options) |
177 | err = sb->s_op->show_options(m, mnt); | 177 | err = sb->s_op->show_options(m, mnt->mnt_root); |
178 | seq_putc(m, '\n'); | 178 | seq_putc(m, '\n'); |
179 | out: | 179 | out: |
180 | return err; | 180 | return err; |
diff --git a/fs/ubifs/super.c b/fs/ubifs/super.c index d93a3fadf53c..63765d58445b 100644 --- a/fs/ubifs/super.c +++ b/fs/ubifs/super.c | |||
@@ -419,9 +419,9 @@ static int ubifs_statfs(struct dentry *dentry, struct kstatfs *buf) | |||
419 | return 0; | 419 | return 0; |
420 | } | 420 | } |
421 | 421 | ||
422 | static int ubifs_show_options(struct seq_file *s, struct vfsmount *mnt) | 422 | static int ubifs_show_options(struct seq_file *s, struct dentry *root) |
423 | { | 423 | { |
424 | struct ubifs_info *c = mnt->mnt_sb->s_fs_info; | 424 | struct ubifs_info *c = root->d_sb->s_fs_info; |
425 | 425 | ||
426 | if (c->mount_opts.unmount_mode == 2) | 426 | if (c->mount_opts.unmount_mode == 2) |
427 | seq_printf(s, ",fast_unmount"); | 427 | seq_printf(s, ",fast_unmount"); |
diff --git a/fs/udf/super.c b/fs/udf/super.c index c94fc889a486..0c33225647a0 100644 --- a/fs/udf/super.c +++ b/fs/udf/super.c | |||
@@ -89,7 +89,7 @@ static void udf_open_lvid(struct super_block *); | |||
89 | static void udf_close_lvid(struct super_block *); | 89 | static void udf_close_lvid(struct super_block *); |
90 | static unsigned int udf_count_free(struct super_block *); | 90 | static unsigned int udf_count_free(struct super_block *); |
91 | static int udf_statfs(struct dentry *, struct kstatfs *); | 91 | static int udf_statfs(struct dentry *, struct kstatfs *); |
92 | static int udf_show_options(struct seq_file *, struct vfsmount *); | 92 | static int udf_show_options(struct seq_file *, struct dentry *); |
93 | 93 | ||
94 | struct logicalVolIntegrityDescImpUse *udf_sb_lvidiu(struct udf_sb_info *sbi) | 94 | struct logicalVolIntegrityDescImpUse *udf_sb_lvidiu(struct udf_sb_info *sbi) |
95 | { | 95 | { |
@@ -249,9 +249,9 @@ static int udf_sb_alloc_partition_maps(struct super_block *sb, u32 count) | |||
249 | return 0; | 249 | return 0; |
250 | } | 250 | } |
251 | 251 | ||
252 | static int udf_show_options(struct seq_file *seq, struct vfsmount *mnt) | 252 | static int udf_show_options(struct seq_file *seq, struct dentry *root) |
253 | { | 253 | { |
254 | struct super_block *sb = mnt->mnt_sb; | 254 | struct super_block *sb = root->d_sb; |
255 | struct udf_sb_info *sbi = UDF_SB(sb); | 255 | struct udf_sb_info *sbi = UDF_SB(sb); |
256 | 256 | ||
257 | if (!UDF_QUERY_FLAG(sb, UDF_FLAG_STRICT)) | 257 | if (!UDF_QUERY_FLAG(sb, UDF_FLAG_STRICT)) |
diff --git a/fs/ufs/super.c b/fs/ufs/super.c index d6961eb5b774..5246ee3e5607 100644 --- a/fs/ufs/super.c +++ b/fs/ufs/super.c | |||
@@ -1351,9 +1351,9 @@ static int ufs_remount (struct super_block *sb, int *mount_flags, char *data) | |||
1351 | return 0; | 1351 | return 0; |
1352 | } | 1352 | } |
1353 | 1353 | ||
1354 | static int ufs_show_options(struct seq_file *seq, struct vfsmount *vfs) | 1354 | static int ufs_show_options(struct seq_file *seq, struct dentry *root) |
1355 | { | 1355 | { |
1356 | struct ufs_sb_info *sbi = UFS_SB(vfs->mnt_sb); | 1356 | struct ufs_sb_info *sbi = UFS_SB(root->d_sb); |
1357 | unsigned mval = sbi->s_mount_opt & UFS_MOUNT_UFSTYPE; | 1357 | unsigned mval = sbi->s_mount_opt & UFS_MOUNT_UFSTYPE; |
1358 | const struct match_token *tp = tokens; | 1358 | const struct match_token *tp = tokens; |
1359 | 1359 | ||
diff --git a/fs/xfs/xfs_super.c b/fs/xfs/xfs_super.c index 8a899496fd5f..7b7669507ee3 100644 --- a/fs/xfs/xfs_super.c +++ b/fs/xfs/xfs_super.c | |||
@@ -1238,9 +1238,9 @@ xfs_fs_unfreeze( | |||
1238 | STATIC int | 1238 | STATIC int |
1239 | xfs_fs_show_options( | 1239 | xfs_fs_show_options( |
1240 | struct seq_file *m, | 1240 | struct seq_file *m, |
1241 | struct vfsmount *mnt) | 1241 | struct dentry *root) |
1242 | { | 1242 | { |
1243 | return -xfs_showargs(XFS_M(mnt->mnt_sb), m); | 1243 | return -xfs_showargs(XFS_M(root->d_sb), m); |
1244 | } | 1244 | } |
1245 | 1245 | ||
1246 | /* | 1246 | /* |
diff --git a/include/linux/fs.h b/include/linux/fs.h index 13721b073407..cc1021fd19ef 100644 --- a/include/linux/fs.h +++ b/include/linux/fs.h | |||
@@ -1672,7 +1672,7 @@ struct super_operations { | |||
1672 | int (*remount_fs) (struct super_block *, int *, char *); | 1672 | int (*remount_fs) (struct super_block *, int *, char *); |
1673 | void (*umount_begin) (struct super_block *); | 1673 | void (*umount_begin) (struct super_block *); |
1674 | 1674 | ||
1675 | int (*show_options)(struct seq_file *, struct vfsmount *); | 1675 | int (*show_options)(struct seq_file *, struct dentry *); |
1676 | int (*show_devname)(struct seq_file *, struct dentry *); | 1676 | int (*show_devname)(struct seq_file *, struct dentry *); |
1677 | int (*show_path)(struct seq_file *, struct dentry *); | 1677 | int (*show_path)(struct seq_file *, struct dentry *); |
1678 | int (*show_stats)(struct seq_file *, struct dentry *); | 1678 | int (*show_stats)(struct seq_file *, struct dentry *); |
@@ -2592,7 +2592,7 @@ extern void setattr_copy(struct inode *inode, const struct iattr *attr); | |||
2592 | 2592 | ||
2593 | extern void file_update_time(struct file *file); | 2593 | extern void file_update_time(struct file *file); |
2594 | 2594 | ||
2595 | extern int generic_show_options(struct seq_file *m, struct vfsmount *mnt); | 2595 | extern int generic_show_options(struct seq_file *m, struct dentry *root); |
2596 | extern void save_mount_options(struct super_block *sb, char *options); | 2596 | extern void save_mount_options(struct super_block *sb, char *options); |
2597 | extern void replace_mount_options(struct super_block *sb, char *options); | 2597 | extern void replace_mount_options(struct super_block *sb, char *options); |
2598 | 2598 | ||
diff --git a/kernel/cgroup.c b/kernel/cgroup.c index 86ebacfd9431..7cab65f83f1d 100644 --- a/kernel/cgroup.c +++ b/kernel/cgroup.c | |||
@@ -1038,9 +1038,9 @@ static int rebind_subsystems(struct cgroupfs_root *root, | |||
1038 | return 0; | 1038 | return 0; |
1039 | } | 1039 | } |
1040 | 1040 | ||
1041 | static int cgroup_show_options(struct seq_file *seq, struct vfsmount *vfs) | 1041 | static int cgroup_show_options(struct seq_file *seq, struct dentry *dentry) |
1042 | { | 1042 | { |
1043 | struct cgroupfs_root *root = vfs->mnt_sb->s_fs_info; | 1043 | struct cgroupfs_root *root = dentry->d_sb->s_fs_info; |
1044 | struct cgroup_subsys *ss; | 1044 | struct cgroup_subsys *ss; |
1045 | 1045 | ||
1046 | mutex_lock(&cgroup_mutex); | 1046 | mutex_lock(&cgroup_mutex); |
diff --git a/mm/shmem.c b/mm/shmem.c index 86a19efc36fb..feead1943d92 100644 --- a/mm/shmem.c +++ b/mm/shmem.c | |||
@@ -2118,9 +2118,9 @@ out: | |||
2118 | return error; | 2118 | return error; |
2119 | } | 2119 | } |
2120 | 2120 | ||
2121 | static int shmem_show_options(struct seq_file *seq, struct vfsmount *vfs) | 2121 | static int shmem_show_options(struct seq_file *seq, struct dentry *root) |
2122 | { | 2122 | { |
2123 | struct shmem_sb_info *sbinfo = SHMEM_SB(vfs->mnt_sb); | 2123 | struct shmem_sb_info *sbinfo = SHMEM_SB(root->d_sb); |
2124 | 2124 | ||
2125 | if (sbinfo->max_blocks != shmem_default_max_blocks()) | 2125 | if (sbinfo->max_blocks != shmem_default_max_blocks()) |
2126 | seq_printf(seq, ",size=%luk", | 2126 | seq_printf(seq, ",size=%luk", |