SUNRPC: Use the already looked-up xprt in rpcb_getport_async()
authorBryan Schumaker <bjschuma@netapp.com>
Tue, 27 Mar 2012 17:46:32 +0000 (13:46 -0400)
committerTrond Myklebust <Trond.Myklebust@netapp.com>
Tue, 27 Mar 2012 20:33:35 +0000 (16:33 -0400)
rbcb_getport_async() was looking up the rpc_xprt (reference++) and then
later looking it up again (reference++) to pass through the
rpcbind_args.  The xprt would only be dereferenced once, when we were
done with the rpcbind_args (reference--).  This leaves an extra
reference to the transport that would never go away.

Signed-off-by: Bryan Schumaker <bjschuma@netapp.com>
Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com>
net/sunrpc/rpcb_clnt.c

index 207a74696c9f84a62df704c94190ed28474c23b0..78ac39fd9fe7556a71dc361406904cf8bb32d7b2 100644 (file)
@@ -734,7 +734,7 @@ void rpcb_getport_async(struct rpc_task *task)
        map->r_vers = clnt->cl_vers;
        map->r_prot = xprt->prot;
        map->r_port = 0;
-       map->r_xprt = xprt_get(xprt);
+       map->r_xprt = xprt;
        map->r_status = -EIO;
 
        switch (bind_version) {