aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAl Viro <viro@zeniv.linux.org.uk>2011-12-08 21:32:45 -0500
committerAl Viro <viro@zeniv.linux.org.uk>2012-01-06 23:19:54 -0500
commit34c80b1d93e6e20ca9dea0baf583a5b5510d92d4 (patch)
tree7dcbf0a4e09464247e6992c8f44fcc872867bd3a
parenta6322de67b58a00e3a783ad9c87c2a11b2d67b47 (diff)
vfs: switch ->show_options() to struct dentry *
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
-rw-r--r--Documentation/filesystems/Locking2
-rw-r--r--Documentation/filesystems/vfs.txt2
-rw-r--r--arch/s390/hypfs/inode.c4
-rw-r--r--drivers/staging/pohmelfs/inode.c4
-rw-r--r--drivers/usb/core/inode.c2
-rw-r--r--fs/adfs/super.c4
-rw-r--r--fs/autofs4/inode.c6
-rw-r--r--fs/btrfs/super.c4
-rw-r--r--fs/ceph/super.c6
-rw-r--r--fs/cifs/cifsfs.c6
-rw-r--r--fs/devpts/inode.c4
-rw-r--r--fs/ecryptfs/super.c4
-rw-r--r--fs/ext2/super.c4
-rw-r--r--fs/ext3/super.c4
-rw-r--r--fs/ext4/super.c4
-rw-r--r--fs/fat/inode.c6
-rw-r--r--fs/fuse/inode.c10
-rw-r--r--fs/gfs2/super.c8
-rw-r--r--fs/hfs/super.c4
-rw-r--r--fs/hfsplus/hfsplus_fs.h2
-rw-r--r--fs/hfsplus/options.c4
-rw-r--r--fs/hostfs/hostfs_kern.c4
-rw-r--r--fs/jffs2/super.c4
-rw-r--r--fs/jfs/super.c4
-rw-r--r--fs/namespace.c4
-rw-r--r--fs/ncpfs/inode.c6
-rw-r--r--fs/nfs/super.c6
-rw-r--r--fs/nilfs2/super.c6
-rw-r--r--fs/ntfs/inode.c8
-rw-r--r--fs/ntfs/inode.h2
-rw-r--r--fs/ocfs2/super.c9
-rw-r--r--fs/proc_namespace.c4
-rw-r--r--fs/ubifs/super.c4
-rw-r--r--fs/udf/super.c6
-rw-r--r--fs/ufs/super.c4
-rw-r--r--fs/xfs/xfs_super.c4
-rw-r--r--include/linux/fs.h4
-rw-r--r--kernel/cgroup.c4
-rw-r--r--mm/shmem.c4
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
262static int hypfs_show_options(struct seq_file *s, struct vfsmount *mnt) 262static 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
1372static int pohmelfs_show_options(struct seq_file *seq, struct vfsmount *vfs) 1372static 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;
65static umode_t busmode = USBFS_DEFAULT_BUSMODE; 65static umode_t busmode = USBFS_DEFAULT_BUSMODE;
66static umode_t listmode = USBFS_DEFAULT_LISTMODE; 66static umode_t listmode = USBFS_DEFAULT_LISTMODE;
67 67
68static int usbfs_show_options(struct seq_file *seq, struct vfsmount *mnt) 68static 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
129static int adfs_show_options(struct seq_file *seq, struct vfsmount *mnt) 129static 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
73static int autofs4_show_options(struct seq_file *m, struct vfsmount *mnt) 73static 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
664static int btrfs_show_options(struct seq_file *seq, struct vfsmount *vfs) 664static 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 */
346static int ceph_show_options(struct seq_file *m, struct vfsmount *mnt) 346static 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 */
345static int 345static int
346cifs_show_options(struct seq_file *s, struct vfsmount *m) 346cifs_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
249static int devpts_show_options(struct seq_file *seq, struct vfsmount *vfs) 249static 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 */
134static int ecryptfs_show_options(struct seq_file *m, struct vfsmount *mnt) 134static 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
213static int ext2_show_options(struct seq_file *seq, struct vfsmount *vfs) 213static 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 */
613static int ext3_show_options(struct seq_file *seq, struct vfsmount *vfs) 613static 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 */
1035static int ext4_show_options(struct seq_file *seq, struct vfsmount *vfs) 1035static 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
672EXPORT_SYMBOL_GPL(fat_sync_inode); 672EXPORT_SYMBOL_GPL(fat_sync_inode);
673 673
674static int fat_show_options(struct seq_file *m, struct vfsmount *mnt); 674static int fat_show_options(struct seq_file *m, struct dentry *root);
675static const struct super_operations fat_sops = { 675static 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
813static int fat_show_options(struct seq_file *m, struct vfsmount *mnt) 813static 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
500static int fuse_show_options(struct seq_file *m, struct vfsmount *mnt) 500static 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
1292static int gfs2_show_options(struct seq_file *s, struct vfsmount *mnt) 1292static 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
136static int hfs_show_options(struct seq_file *seq, struct vfsmount *mnt) 136static 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);
419int hfsplus_parse_options(char *, struct hfsplus_sb_info *); 419int hfsplus_parse_options(char *, struct hfsplus_sb_info *);
420int hfsplus_parse_options_remount(char *input, int *force); 420int hfsplus_parse_options_remount(char *input, int *force);
421void hfsplus_fill_defaults(struct hfsplus_sb_info *); 421void hfsplus_fill_defaults(struct hfsplus_sb_info *);
422int hfsplus_show_options(struct seq_file *, struct vfsmount *); 422int hfsplus_show_options(struct seq_file *, struct dentry *);
423 423
424/* super.c */ 424/* super.c */
425struct inode *hfsplus_iget(struct super_block *, unsigned long); 425struct 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
209int hfsplus_show_options(struct seq_file *seq, struct vfsmount *mnt) 209int 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
261static int hostfs_show_options(struct seq_file *seq, struct vfsmount *vfs) 261static 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
99static int jffs2_show_options(struct seq_file *s, struct vfsmount *mnt) 99static 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
611static int jfs_show_options(struct seq_file *seq, struct vfsmount *vfs) 611static 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 */
839int generic_show_options(struct seq_file *m, struct vfsmount *mnt) 839int 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 @@
44static void ncp_evict_inode(struct inode *); 44static void ncp_evict_inode(struct inode *);
45static void ncp_put_super(struct super_block *); 45static void ncp_put_super(struct super_block *);
46static int ncp_statfs(struct dentry *, struct kstatfs *); 46static int ncp_statfs(struct dentry *, struct kstatfs *);
47static int ncp_show_options(struct seq_file *, struct vfsmount *); 47static int ncp_show_options(struct seq_file *, struct dentry *);
48 48
49static struct kmem_cache * ncp_inode_cachep; 49static 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
325static int ncp_show_options(struct seq_file *seq, struct vfsmount *mnt) 325static 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
263static void nfs_umount_begin(struct super_block *); 263static void nfs_umount_begin(struct super_block *);
264static int nfs_statfs(struct dentry *, struct kstatfs *); 264static int nfs_statfs(struct dentry *, struct kstatfs *);
265static int nfs_show_options(struct seq_file *, struct vfsmount *); 265static int nfs_show_options(struct seq_file *, struct dentry *);
266static int nfs_show_devname(struct seq_file *, struct dentry *); 266static int nfs_show_devname(struct seq_file *, struct dentry *);
267static int nfs_show_path(struct seq_file *, struct dentry *); 267static int nfs_show_path(struct seq_file *, struct dentry *);
268static int nfs_show_stats(struct seq_file *, struct dentry *); 268static 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 */
723static int nfs_show_options(struct seq_file *m, struct vfsmount *mnt) 723static 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
651static int nilfs_show_options(struct seq_file *seq, struct vfsmount *vfs) 651static 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 */
2310int ntfs_show_options(struct seq_file *sf, struct vfsmount *mnt) 2310int 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
299extern int ntfs_read_inode_mount(struct inode *vi); 299extern int ntfs_read_inode_mount(struct inode *vi);
300 300
301extern int ntfs_show_options(struct seq_file *sf, struct vfsmount *mnt); 301extern 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);
109static int ocfs2_check_set_options(struct super_block *sb, 109static int ocfs2_check_set_options(struct super_block *sb,
110 struct mount_options *options); 110 struct mount_options *options);
111static int ocfs2_show_options(struct seq_file *s, struct vfsmount *mnt); 111static int ocfs2_show_options(struct seq_file *s, struct dentry *root);
112static void ocfs2_put_super(struct super_block *sb); 112static void ocfs2_put_super(struct super_block *sb);
113static int ocfs2_mount_volume(struct super_block *sb); 113static int ocfs2_mount_volume(struct super_block *sb);
114static int ocfs2_remount(struct super_block *sb, int *flags, char *data); 114static 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
1536static int ocfs2_show_options(struct seq_file *s, struct vfsmount *mnt) 1536static 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");
118out: 118out:
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');
179out: 179out:
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
422static int ubifs_show_options(struct seq_file *s, struct vfsmount *mnt) 422static 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 *);
89static void udf_close_lvid(struct super_block *); 89static void udf_close_lvid(struct super_block *);
90static unsigned int udf_count_free(struct super_block *); 90static unsigned int udf_count_free(struct super_block *);
91static int udf_statfs(struct dentry *, struct kstatfs *); 91static int udf_statfs(struct dentry *, struct kstatfs *);
92static int udf_show_options(struct seq_file *, struct vfsmount *); 92static int udf_show_options(struct seq_file *, struct dentry *);
93 93
94struct logicalVolIntegrityDescImpUse *udf_sb_lvidiu(struct udf_sb_info *sbi) 94struct 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
252static int udf_show_options(struct seq_file *seq, struct vfsmount *mnt) 252static 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
1354static int ufs_show_options(struct seq_file *seq, struct vfsmount *vfs) 1354static 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(
1238STATIC int 1238STATIC int
1239xfs_fs_show_options( 1239xfs_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
2593extern void file_update_time(struct file *file); 2593extern void file_update_time(struct file *file);
2594 2594
2595extern int generic_show_options(struct seq_file *m, struct vfsmount *mnt); 2595extern int generic_show_options(struct seq_file *m, struct dentry *root);
2596extern void save_mount_options(struct super_block *sb, char *options); 2596extern void save_mount_options(struct super_block *sb, char *options);
2597extern void replace_mount_options(struct super_block *sb, char *options); 2597extern 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
1041static int cgroup_show_options(struct seq_file *seq, struct vfsmount *vfs) 1041static 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
2121static int shmem_show_options(struct seq_file *seq, struct vfsmount *vfs) 2121static 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",