diff options
Diffstat (limited to 'net')
-rw-r--r-- | net/sunrpc/rpcb_clnt.c | 6 |
1 files changed, 2 insertions, 4 deletions
diff --git a/net/sunrpc/rpcb_clnt.c b/net/sunrpc/rpcb_clnt.c index 0517967a68bf..21c698d7b774 100644 --- a/net/sunrpc/rpcb_clnt.c +++ b/net/sunrpc/rpcb_clnt.c | |||
@@ -365,18 +365,16 @@ void rpcb_getport_async(struct rpc_task *task) | |||
365 | rpc_release_client(rpcb_clnt); | 365 | rpc_release_client(rpcb_clnt); |
366 | if (IS_ERR(child)) { | 366 | if (IS_ERR(child)) { |
367 | status = -EIO; | 367 | status = -EIO; |
368 | /* rpcb_map_release() has freed the arguments */ | ||
368 | dprintk("RPC: %5u %s: rpc_run_task failed\n", | 369 | dprintk("RPC: %5u %s: rpc_run_task failed\n", |
369 | task->tk_pid, __func__); | 370 | task->tk_pid, __func__); |
370 | goto bailout; | 371 | goto bailout_nofree; |
371 | } | 372 | } |
372 | rpc_put_task(child); | 373 | rpc_put_task(child); |
373 | 374 | ||
374 | task->tk_xprt->stat.bind_count++; | 375 | task->tk_xprt->stat.bind_count++; |
375 | return; | 376 | return; |
376 | 377 | ||
377 | bailout: | ||
378 | kfree(map); | ||
379 | xprt_put(xprt); | ||
380 | bailout_nofree: | 378 | bailout_nofree: |
381 | rpcb_wake_rpcbind_waiters(xprt, status); | 379 | rpcb_wake_rpcbind_waiters(xprt, status); |
382 | bailout_nowake: | 380 | bailout_nowake: |