diff options
author | Mateusz Guzik <mguzik@redhat.com> | 2014-06-10 12:44:12 +0200 |
---|---|---|
committer | Greg Kroah-Hartman <gregkh@linuxfoundation.org> | 2014-07-06 18:57:28 -0700 |
commit | 3ae785848a892b29ab25bcda2c88999ab284df29 (patch) | |
tree | 4dc870fc5147eb08b7343cd12e450ad89f7762b4 /fs/nfs | |
parent | 02c098bcaa5f7bf7f185ea9abca526b4d5cf7131 (diff) | |
download | lwn-3ae785848a892b29ab25bcda2c88999ab284df29.tar.gz lwn-3ae785848a892b29ab25bcda2c88999ab284df29.zip |
NFS: populate ->net in mount data when remounting
commit a914722f333b3359d2f4f12919380a334176bb89 upstream.
Otherwise the kernel oopses when remounting with IPv6 server because
net is dereferenced in dev_get_by_name.
Use net ns of current thread so that dev_get_by_name does not operate on
foreign ns. Changing the address is prohibited anyway so this should not
affect anything.
Signed-off-by: Mateusz Guzik <mguzik@redhat.com>
Cc: linux-nfs@vger.kernel.org
Cc: linux-kernel@vger.kernel.org
Signed-off-by: Trond Myklebust <trond.myklebust@primarydata.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Diffstat (limited to 'fs/nfs')
-rw-r--r-- | fs/nfs/super.c | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/fs/nfs/super.c b/fs/nfs/super.c index 910ed906eb82..05c3a6e6518d 100644 --- a/fs/nfs/super.c +++ b/fs/nfs/super.c @@ -2246,6 +2246,7 @@ nfs_remount(struct super_block *sb, int *flags, char *raw_data) data->nfs_server.addrlen = nfss->nfs_client->cl_addrlen; data->version = nfsvers; data->minorversion = nfss->nfs_client->cl_minorversion; + data->net = current->nsproxy->net_ns; memcpy(&data->nfs_server.address, &nfss->nfs_client->cl_addr, data->nfs_server.addrlen); |