nfs: merge xdev and remote file_system_type

they are identical now...

Reviewed-by: David Howells <dhowells@redhat.com>
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Signed-off-by: Anna Schumaker <Anna.Schumaker@Netapp.com>
This commit is contained in:
Al Viro 2019-12-10 07:30:58 -05:00 committed by Anna Schumaker
parent a55d3297be
commit 82eaed2bee
4 changed files with 11 additions and 29 deletions

View File

@ -388,7 +388,7 @@ extern int nfs_wait_atomic_killable(atomic_t *p, unsigned int mode);
/* super.c */
extern const struct super_operations nfs_sops;
extern struct file_system_type nfs_fs_type;
extern struct file_system_type nfs_xdev_fs_type;
extern struct file_system_type nfs_prepared_fs_type;
#if IS_ENABLED(CONFIG_NFS_V4)
extern struct file_system_type nfs4_referral_fs_type;
#endif

View File

@ -257,7 +257,7 @@ struct vfsmount *nfs_do_submount(struct dentry *dentry, struct nfs_fh *fh,
if (IS_ERR(devname))
mnt = ERR_CAST(devname);
else
mnt = vfs_submount(dentry, &nfs_xdev_fs_type, devname, &mount_info);
mnt = vfs_submount(dentry, &nfs_prepared_fs_type, devname, &mount_info);
if (mount_info.server)
nfs_free_server(mount_info.server);

View File

@ -18,19 +18,9 @@
static int nfs4_write_inode(struct inode *inode, struct writeback_control *wbc);
static void nfs4_evict_inode(struct inode *inode);
static struct dentry *nfs4_remote_mount(struct file_system_type *fs_type,
int flags, const char *dev_name, void *raw_data);
static struct dentry *nfs4_referral_mount(struct file_system_type *fs_type,
int flags, const char *dev_name, void *raw_data);
static struct file_system_type nfs4_remote_fs_type = {
.owner = THIS_MODULE,
.name = "nfs4",
.mount = nfs4_remote_mount,
.kill_sb = nfs_kill_super,
.fs_flags = FS_RENAME_DOES_D_MOVE|FS_BINARY_MOUNTDATA,
};
struct file_system_type nfs4_referral_fs_type = {
.owner = THIS_MODULE,
.name = "nfs4",
@ -91,16 +81,6 @@ static void nfs4_evict_inode(struct inode *inode)
nfs_clear_inode(inode);
}
/*
* Get the superblock for the NFS4 root partition
*/
static struct dentry *
nfs4_remote_mount(struct file_system_type *fs_type, int flags,
const char *dev_name, void *info)
{
return nfs_fs_mount_common(flags, dev_name, info);
}
struct nfs_referral_count {
struct list_head list;
const struct task_struct *task;
@ -194,7 +174,7 @@ static struct dentry *do_nfs4_mount(struct nfs_server *server, int flags,
else
snprintf(root_devname, len, "%s:/", hostname);
info->server = server;
root_mnt = vfs_kern_mount(&nfs4_remote_fs_type, flags, root_devname, info);
root_mnt = vfs_kern_mount(&nfs_prepared_fs_type, flags, root_devname, info);
if (info->server)
nfs_free_server(info->server);
info->server = NULL;

View File

@ -293,7 +293,7 @@ static match_table_t nfs_vers_tokens = {
{ Opt_vers_err, NULL }
};
static struct dentry *nfs_xdev_mount(struct file_system_type *fs_type,
static struct dentry *nfs_prepared_mount(struct file_system_type *fs_type,
int flags, const char *dev_name, void *raw_data);
struct file_system_type nfs_fs_type = {
@ -306,13 +306,14 @@ struct file_system_type nfs_fs_type = {
MODULE_ALIAS_FS("nfs");
EXPORT_SYMBOL_GPL(nfs_fs_type);
struct file_system_type nfs_xdev_fs_type = {
struct file_system_type nfs_prepared_fs_type = {
.owner = THIS_MODULE,
.name = "nfs",
.mount = nfs_xdev_mount,
.mount = nfs_prepared_mount,
.kill_sb = nfs_kill_super,
.fs_flags = FS_RENAME_DOES_D_MOVE|FS_BINARY_MOUNTDATA,
};
EXPORT_SYMBOL_GPL(nfs_prepared_fs_type);
const struct super_operations nfs_sops = {
.alloc_inode = nfs_alloc_inode,
@ -2791,11 +2792,12 @@ void nfs_kill_super(struct super_block *s)
EXPORT_SYMBOL_GPL(nfs_kill_super);
/*
* Clone an NFS2/3/4 server record on xdev traversal (FSID-change)
* Internal use only: mount_info is already set up by caller.
* Used for mountpoint crossings and for nfs4 root.
*/
static struct dentry *
nfs_xdev_mount(struct file_system_type *fs_type, int flags,
const char *dev_name, void *raw_data)
nfs_prepared_mount(struct file_system_type *fs_type, int flags,
const char *dev_name, void *raw_data)
{
return nfs_fs_mount_common(flags, dev_name, raw_data);
}