diff options
author | Mateusz Guzik <mguzik@redhat.com> | 2014-06-10 06:44:12 -0400 |
---|---|---|
committer | Trond Myklebust <trond.myklebust@primarydata.com> | 2014-06-10 11:10:29 -0400 |
commit | a914722f333b3359d2f4f12919380a334176bb89 (patch) | |
tree | 1d82c2a429217459a95e8c073f0b33b1d5b2662d | |
parent | c5e20cb700c0e36fb5499093b96e80350c6eb48e (diff) |
NFS: populate ->net in mount data when remounting
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
Cc: stable@vger.kernel.org # 3.4+
Signed-off-by: Trond Myklebust <trond.myklebust@primarydata.com>
-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 1a6d7ac9d9d2..084af1060d79 100644 --- a/fs/nfs/super.c +++ b/fs/nfs/super.c | |||
@@ -2260,6 +2260,7 @@ nfs_remount(struct super_block *sb, int *flags, char *raw_data) | |||
2260 | data->nfs_server.addrlen = nfss->nfs_client->cl_addrlen; | 2260 | data->nfs_server.addrlen = nfss->nfs_client->cl_addrlen; |
2261 | data->version = nfsvers; | 2261 | data->version = nfsvers; |
2262 | data->minorversion = nfss->nfs_client->cl_minorversion; | 2262 | data->minorversion = nfss->nfs_client->cl_minorversion; |
2263 | data->net = current->nsproxy->net_ns; | ||
2263 | memcpy(&data->nfs_server.address, &nfss->nfs_client->cl_addr, | 2264 | memcpy(&data->nfs_server.address, &nfss->nfs_client->cl_addr, |
2264 | data->nfs_server.addrlen); | 2265 | data->nfs_server.addrlen); |
2265 | 2266 | ||