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: Al Viro <viro@zeniv.linux.org.uk>
This commit is contained in:
@@ -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 @@ out:
|
|||||||
/*
|
/*
|
||||||
* 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,
|
|||||||
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,
|
|||||||
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,
|
|||||||
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,
|
|||||||
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,
|
|||||||
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,
|
|||||||
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;
|
||||||
|
Reference in New Issue
Block a user