SUNRPC: Fix a memory leak in rpcb_getport_async
authorTrond Myklebust <Trond.Myklebust@netapp.com>
Fri, 3 Oct 2008 20:48:40 +0000 (16:48 -0400)
committerTrond Myklebust <Trond.Myklebust@netapp.com>
Tue, 7 Oct 2008 22:18:57 +0000 (18:18 -0400)
Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com>
net/sunrpc/rpcb_clnt.c

index 172935b046de5a85802e0cc9ea8905b45f9b9531..0a22f00734a4ba1024cde9c5337e3e5b89168e76 100644 (file)
@@ -580,7 +580,7 @@ void rpcb_getport_async(struct rpc_task *task)
                status = -ENOMEM;
                dprintk("RPC: %5u %s: no memory available\n",
                        task->tk_pid, __func__);
-               goto bailout_nofree;
+               goto bailout_release_client;
        }
        map->r_prog = clnt->cl_prog;
        map->r_vers = clnt->cl_vers;
@@ -605,6 +605,8 @@ void rpcb_getport_async(struct rpc_task *task)
        rpc_put_task(child);
        return;
 
+bailout_release_client:
+       rpc_release_client(rpcb_clnt);
 bailout_nofree:
        rpcb_wake_rpcbind_waiters(xprt, status);
        task->tk_status = status;