Commit 0d5839ad authored by Al Viro's avatar Al Viro

nfs: propagate devname to nfs{,4}_get_root()

step 1 of ->mnt_devname fixes: make sure we have the value of devname
available in ..._get_root().
Signed-off-by: default avatarAl Viro <viro@zeniv.linux.org.uk>
parent 60ed8cf7
...@@ -75,7 +75,8 @@ static int nfs_superblock_set_dummy_root(struct super_block *sb, struct inode *i ...@@ -75,7 +75,8 @@ static int nfs_superblock_set_dummy_root(struct super_block *sb, struct inode *i
/* /*
* get an NFS2/NFS3 root dentry from the root filehandle * get an NFS2/NFS3 root dentry from the root filehandle
*/ */
struct dentry *nfs_get_root(struct super_block *sb, struct nfs_fh *mntfh) struct dentry *nfs_get_root(struct super_block *sb, struct nfs_fh *mntfh,
const char *devname)
{ {
struct nfs_server *server = NFS_SB(sb); struct nfs_server *server = NFS_SB(sb);
struct nfs_fsinfo fsinfo; struct nfs_fsinfo fsinfo;
...@@ -169,7 +170,8 @@ int nfs4_get_rootfh(struct nfs_server *server, struct nfs_fh *mntfh) ...@@ -169,7 +170,8 @@ int nfs4_get_rootfh(struct nfs_server *server, struct nfs_fh *mntfh)
/* /*
* get an NFS4 root dentry from the root filehandle * get an NFS4 root dentry from the root filehandle
*/ */
struct dentry *nfs4_get_root(struct super_block *sb, struct nfs_fh *mntfh) struct dentry *nfs4_get_root(struct super_block *sb, struct nfs_fh *mntfh,
const char *devname)
{ {
struct nfs_server *server = NFS_SB(sb); struct nfs_server *server = NFS_SB(sb);
struct nfs_fattr *fattr = NULL; struct nfs_fattr *fattr = NULL;
......
...@@ -254,9 +254,11 @@ extern char *nfs_path(const char *base, ...@@ -254,9 +254,11 @@ extern char *nfs_path(const char *base,
extern struct vfsmount *nfs_d_automount(struct path *path); extern struct vfsmount *nfs_d_automount(struct path *path);
/* getroot.c */ /* getroot.c */
extern struct dentry *nfs_get_root(struct super_block *, struct nfs_fh *); extern struct dentry *nfs_get_root(struct super_block *, struct nfs_fh *,
const char *);
#ifdef CONFIG_NFS_V4 #ifdef CONFIG_NFS_V4
extern struct dentry *nfs4_get_root(struct super_block *, struct nfs_fh *); extern struct dentry *nfs4_get_root(struct super_block *, struct nfs_fh *,
const char *);
extern int nfs4_get_rootfh(struct nfs_server *server, struct nfs_fh *mntfh); extern int nfs4_get_rootfh(struct nfs_server *server, struct nfs_fh *mntfh);
#endif #endif
......
...@@ -2336,7 +2336,7 @@ static int nfs_get_sb(struct file_system_type *fs_type, ...@@ -2336,7 +2336,7 @@ static int nfs_get_sb(struct file_system_type *fs_type,
s, data ? data->fscache_uniq : NULL, NULL); s, data ? data->fscache_uniq : NULL, NULL);
} }
mntroot = nfs_get_root(s, mntfh); mntroot = nfs_get_root(s, mntfh, dev_name);
if (IS_ERR(mntroot)) { if (IS_ERR(mntroot)) {
error = PTR_ERR(mntroot); error = PTR_ERR(mntroot);
goto error_splat_super; goto error_splat_super;
...@@ -2450,7 +2450,7 @@ nfs_xdev_mount(struct file_system_type *fs_type, int flags, ...@@ -2450,7 +2450,7 @@ nfs_xdev_mount(struct file_system_type *fs_type, int flags,
nfs_fscache_get_super_cookie(s, NULL, data); nfs_fscache_get_super_cookie(s, NULL, data);
} }
mntroot = nfs_get_root(s, data->fh); mntroot = nfs_get_root(s, data->fh, dev_name);
if (IS_ERR(mntroot)) { if (IS_ERR(mntroot)) {
error = PTR_ERR(mntroot); error = PTR_ERR(mntroot);
goto error_splat_super; goto error_splat_super;
...@@ -2718,7 +2718,7 @@ nfs4_remote_mount(struct file_system_type *fs_type, int flags, ...@@ -2718,7 +2718,7 @@ nfs4_remote_mount(struct file_system_type *fs_type, int flags,
s, data ? data->fscache_uniq : NULL, NULL); s, data ? data->fscache_uniq : NULL, NULL);
} }
mntroot = nfs4_get_root(s, mntfh); mntroot = nfs4_get_root(s, mntfh, dev_name);
if (IS_ERR(mntroot)) { if (IS_ERR(mntroot)) {
error = PTR_ERR(mntroot); error = PTR_ERR(mntroot);
goto error_splat_super; goto error_splat_super;
...@@ -3033,7 +3033,7 @@ nfs4_xdev_mount(struct file_system_type *fs_type, int flags, ...@@ -3033,7 +3033,7 @@ nfs4_xdev_mount(struct file_system_type *fs_type, int flags,
nfs_fscache_get_super_cookie(s, NULL, data); nfs_fscache_get_super_cookie(s, NULL, data);
} }
mntroot = nfs4_get_root(s, data->fh); mntroot = nfs4_get_root(s, data->fh, dev_name);
if (IS_ERR(mntroot)) { if (IS_ERR(mntroot)) {
error = PTR_ERR(mntroot); error = PTR_ERR(mntroot);
goto error_splat_super; goto error_splat_super;
...@@ -3120,7 +3120,7 @@ nfs4_remote_referral_mount(struct file_system_type *fs_type, int flags, ...@@ -3120,7 +3120,7 @@ nfs4_remote_referral_mount(struct file_system_type *fs_type, int flags,
nfs_fscache_get_super_cookie(s, NULL, data); nfs_fscache_get_super_cookie(s, NULL, data);
} }
mntroot = nfs4_get_root(s, mntfh); mntroot = nfs4_get_root(s, mntfh, dev_name);
if (IS_ERR(mntroot)) { if (IS_ERR(mntroot)) {
error = PTR_ERR(mntroot); error = PTR_ERR(mntroot);
goto error_splat_super; goto error_splat_super;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment