Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit a58e0be6 authored by Chuck Lever's avatar Chuck Lever Committed by Trond Myklebust
Browse files

SUNRPC: Remove extra xprt_put()



While testing error cases where rpc_new_client() fails, I saw
some oopses.

If rpc_new_client() fails, it already invokes xprt_put().  Thus
__rpc_clone_client() does not need to invoke it again.

Introduced by commit 1b63a751 "SUNRPC: Refactor rpc_clone_client()"
Fri Sep 14, 2012.

Signed-off-by: default avatarChuck Lever <chuck.lever@oracle.com>
Cc: stable@vger.kernel.org [>=3.7]
Signed-off-by: default avatarTrond Myklebust <Trond.Myklebust@netapp.com>
parent 1166fde6
Loading
Loading
Loading
Loading
+1 −3
Original line number Diff line number Diff line
@@ -512,7 +512,7 @@ static struct rpc_clnt *__rpc_clone_client(struct rpc_create_args *args,
	new = rpc_new_client(args, xprt);
	if (IS_ERR(new)) {
		err = PTR_ERR(new);
		goto out_put;
		goto out_err;
	}

	atomic_inc(&clnt->cl_count);
@@ -525,8 +525,6 @@ static struct rpc_clnt *__rpc_clone_client(struct rpc_create_args *args,
	new->cl_chatty = clnt->cl_chatty;
	return new;

out_put:
	xprt_put(xprt);
out_err:
	dprintk("RPC:       %s: returned error %d\n", __func__, err);
	return ERR_PTR(err);