|
@@ -1386,7 +1386,7 @@ rpc_fill_super(struct super_block *sb, void *data, int silent)
|
|
|
{
|
|
|
struct inode *inode;
|
|
|
struct dentry *root, *gssd_dentry;
|
|
|
- struct net *net = data;
|
|
|
+ struct net *net = get_net(sb->s_fs_info);
|
|
|
struct sunrpc_net *sn = net_generic(net, sunrpc_net_id);
|
|
|
int err;
|
|
|
|
|
@@ -1419,7 +1419,6 @@ rpc_fill_super(struct super_block *sb, void *data, int silent)
|
|
|
sb);
|
|
|
if (err)
|
|
|
goto err_depopulate;
|
|
|
- sb->s_fs_info = get_net(net);
|
|
|
mutex_unlock(&sn->pipefs_sb_lock);
|
|
|
return 0;
|
|
|
|
|
@@ -1448,7 +1447,8 @@ static struct dentry *
|
|
|
rpc_mount(struct file_system_type *fs_type,
|
|
|
int flags, const char *dev_name, void *data)
|
|
|
{
|
|
|
- return mount_ns(fs_type, flags, current->nsproxy->net_ns, rpc_fill_super);
|
|
|
+ struct net *net = current->nsproxy->net_ns;
|
|
|
+ return mount_ns(fs_type, flags, data, net, net->user_ns, rpc_fill_super);
|
|
|
}
|
|
|
|
|
|
static void rpc_kill_sb(struct super_block *sb)
|
|
@@ -1468,9 +1468,9 @@ static void rpc_kill_sb(struct super_block *sb)
|
|
|
RPC_PIPEFS_UMOUNT,
|
|
|
sb);
|
|
|
mutex_unlock(&sn->pipefs_sb_lock);
|
|
|
- put_net(net);
|
|
|
out:
|
|
|
kill_litter_super(sb);
|
|
|
+ put_net(net);
|
|
|
}
|
|
|
|
|
|
static struct file_system_type rpc_pipe_fs_type = {
|