NFSv4: Fix a memory leak in nfs4_discover_server_trunking
When we assign a new rpc_client to clp->cl_rpcclient, we need to destroy the old one. Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com> Cc: Chuck Lever <chuck.lever@oracle.com> Cc: stable@vger.kernel.org [>=3.7]
This commit is contained in:
parent
a58e0be6f6
commit
b193d59a48
1 changed files with 7 additions and 1 deletions
|
@ -1886,7 +1886,13 @@ again:
|
||||||
status = PTR_ERR(clnt);
|
status = PTR_ERR(clnt);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
clp->cl_rpcclient = clnt;
|
/* Note: this is safe because we haven't yet marked the
|
||||||
|
* client as ready, so we are the only user of
|
||||||
|
* clp->cl_rpcclient
|
||||||
|
*/
|
||||||
|
clnt = xchg(&clp->cl_rpcclient, clnt);
|
||||||
|
rpc_shutdown_client(clnt);
|
||||||
|
clnt = clp->cl_rpcclient;
|
||||||
goto again;
|
goto again;
|
||||||
|
|
||||||
case -NFS4ERR_MINOR_VERS_MISMATCH:
|
case -NFS4ERR_MINOR_VERS_MISMATCH:
|
||||||
|
|
Loading…
Add table
Reference in a new issue