Commit abd96698 authored by Trond Myklebust's avatar Trond Myklebust

NFS: Ensure struct nfs_client holds a reference to the net namespace

Otherwise we have no guarantee that the net namespace won't just
disappear from underneath us once the task that created it
is destroyed.
Signed-off-by: default avatarTrond Myklebust <Trond.Myklebust@netapp.com>
Cc: Stanislav Kinsbursky <skinsbursky@parallels.com>
parent 9937347a
...@@ -172,7 +172,7 @@ static struct nfs_client *nfs_alloc_client(const struct nfs_client_initdata *cl_ ...@@ -172,7 +172,7 @@ static struct nfs_client *nfs_alloc_client(const struct nfs_client_initdata *cl_
clp->cl_rpcclient = ERR_PTR(-EINVAL); clp->cl_rpcclient = ERR_PTR(-EINVAL);
clp->cl_proto = cl_init->proto; clp->cl_proto = cl_init->proto;
clp->net = cl_init->net; clp->net = get_net(cl_init->net);
#ifdef CONFIG_NFS_V4 #ifdef CONFIG_NFS_V4
err = nfs_get_cb_ident_idr(clp, cl_init->minorversion); err = nfs_get_cb_ident_idr(clp, cl_init->minorversion);
...@@ -300,6 +300,7 @@ static void nfs_free_client(struct nfs_client *clp) ...@@ -300,6 +300,7 @@ static void nfs_free_client(struct nfs_client *clp)
nfs4_deviceid_purge_client(clp); nfs4_deviceid_purge_client(clp);
put_net(clp->net);
kfree(clp->cl_hostname); kfree(clp->cl_hostname);
kfree(clp->server_scope); kfree(clp->server_scope);
kfree(clp); kfree(clp);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment