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:
parent
a55d3297be
commit
82eaed2bee
@ -388,7 +388,7 @@ extern int nfs_wait_atomic_killable(atomic_t *p, unsigned int mode);
|
|||||||
/* super.c */
|
/* super.c */
|
||||||
extern const struct super_operations nfs_sops;
|
extern const struct super_operations nfs_sops;
|
||||||
extern struct file_system_type nfs_fs_type;
|
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)
|
#if IS_ENABLED(CONFIG_NFS_V4)
|
||||||
extern struct file_system_type nfs4_referral_fs_type;
|
extern struct file_system_type nfs4_referral_fs_type;
|
||||||
#endif
|
#endif
|
||||||
|
@ -257,7 +257,7 @@ struct vfsmount *nfs_do_submount(struct dentry *dentry, struct nfs_fh *fh,
|
|||||||
if (IS_ERR(devname))
|
if (IS_ERR(devname))
|
||||||
mnt = ERR_CAST(devname);
|
mnt = ERR_CAST(devname);
|
||||||
else
|
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)
|
if (mount_info.server)
|
||||||
nfs_free_server(mount_info.server);
|
nfs_free_server(mount_info.server);
|
||||||
|
@ -18,19 +18,9 @@
|
|||||||
|
|
||||||
static int nfs4_write_inode(struct inode *inode, struct writeback_control *wbc);
|
static int nfs4_write_inode(struct inode *inode, struct writeback_control *wbc);
|
||||||
static void nfs4_evict_inode(struct inode *inode);
|
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,
|
static struct dentry *nfs4_referral_mount(struct file_system_type *fs_type,
|
||||||
int flags, const char *dev_name, void *raw_data);
|
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 = {
|
struct file_system_type nfs4_referral_fs_type = {
|
||||||
.owner = THIS_MODULE,
|
.owner = THIS_MODULE,
|
||||||
.name = "nfs4",
|
.name = "nfs4",
|
||||||
@ -91,16 +81,6 @@ static void nfs4_evict_inode(struct inode *inode)
|
|||||||
nfs_clear_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 nfs_referral_count {
|
||||||
struct list_head list;
|
struct list_head list;
|
||||||
const struct task_struct *task;
|
const struct task_struct *task;
|
||||||
@ -194,7 +174,7 @@ static struct dentry *do_nfs4_mount(struct nfs_server *server, int flags,
|
|||||||
else
|
else
|
||||||
snprintf(root_devname, len, "%s:/", hostname);
|
snprintf(root_devname, len, "%s:/", hostname);
|
||||||
info->server = server;
|
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)
|
if (info->server)
|
||||||
nfs_free_server(info->server);
|
nfs_free_server(info->server);
|
||||||
info->server = NULL;
|
info->server = NULL;
|
||||||
|
@ -293,7 +293,7 @@ static match_table_t nfs_vers_tokens = {
|
|||||||
{ Opt_vers_err, NULL }
|
{ 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);
|
int flags, const char *dev_name, void *raw_data);
|
||||||
|
|
||||||
struct file_system_type nfs_fs_type = {
|
struct file_system_type nfs_fs_type = {
|
||||||
@ -306,13 +306,14 @@ struct file_system_type nfs_fs_type = {
|
|||||||
MODULE_ALIAS_FS("nfs");
|
MODULE_ALIAS_FS("nfs");
|
||||||
EXPORT_SYMBOL_GPL(nfs_fs_type);
|
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,
|
.owner = THIS_MODULE,
|
||||||
.name = "nfs",
|
.name = "nfs",
|
||||||
.mount = nfs_xdev_mount,
|
.mount = nfs_prepared_mount,
|
||||||
.kill_sb = nfs_kill_super,
|
.kill_sb = nfs_kill_super,
|
||||||
.fs_flags = FS_RENAME_DOES_D_MOVE|FS_BINARY_MOUNTDATA,
|
.fs_flags = FS_RENAME_DOES_D_MOVE|FS_BINARY_MOUNTDATA,
|
||||||
};
|
};
|
||||||
|
EXPORT_SYMBOL_GPL(nfs_prepared_fs_type);
|
||||||
|
|
||||||
const struct super_operations nfs_sops = {
|
const struct super_operations nfs_sops = {
|
||||||
.alloc_inode = nfs_alloc_inode,
|
.alloc_inode = nfs_alloc_inode,
|
||||||
@ -2791,11 +2792,12 @@ void nfs_kill_super(struct super_block *s)
|
|||||||
EXPORT_SYMBOL_GPL(nfs_kill_super);
|
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 *
|
static struct dentry *
|
||||||
nfs_xdev_mount(struct file_system_type *fs_type, int flags,
|
nfs_prepared_mount(struct file_system_type *fs_type, int flags,
|
||||||
const char *dev_name, void *raw_data)
|
const char *dev_name, void *raw_data)
|
||||||
{
|
{
|
||||||
return nfs_fs_mount_common(flags, dev_name, raw_data);
|
return nfs_fs_mount_common(flags, dev_name, raw_data);
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user