diff options
Diffstat (limited to 'net/sunrpc/rpcb_clnt.c')
-rw-r--r-- | net/sunrpc/rpcb_clnt.c | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/net/sunrpc/rpcb_clnt.c b/net/sunrpc/rpcb_clnt.c index 172935b046de..0a22f00734a4 100644 --- a/net/sunrpc/rpcb_clnt.c +++ b/net/sunrpc/rpcb_clnt.c | |||
@@ -580,7 +580,7 @@ void rpcb_getport_async(struct rpc_task *task) | |||
580 | status = -ENOMEM; | 580 | status = -ENOMEM; |
581 | dprintk("RPC: %5u %s: no memory available\n", | 581 | dprintk("RPC: %5u %s: no memory available\n", |
582 | task->tk_pid, __func__); | 582 | task->tk_pid, __func__); |
583 | goto bailout_nofree; | 583 | goto bailout_release_client; |
584 | } | 584 | } |
585 | map->r_prog = clnt->cl_prog; | 585 | map->r_prog = clnt->cl_prog; |
586 | map->r_vers = clnt->cl_vers; | 586 | map->r_vers = clnt->cl_vers; |
@@ -605,6 +605,8 @@ void rpcb_getport_async(struct rpc_task *task) | |||
605 | rpc_put_task(child); | 605 | rpc_put_task(child); |
606 | return; | 606 | return; |
607 | 607 | ||
608 | bailout_release_client: | ||
609 | rpc_release_client(rpcb_clnt); | ||
608 | bailout_nofree: | 610 | bailout_nofree: |
609 | rpcb_wake_rpcbind_waiters(xprt, status); | 611 | rpcb_wake_rpcbind_waiters(xprt, status); |
610 | task->tk_status = status; | 612 | task->tk_status = status; |