SUNRPC: Don't call xprt_release() if call_allocate fails
authorTrond Myklebust <Trond.Myklebust@netapp.com>
Mon, 1 Oct 2007 16:06:44 +0000 (12:06 -0400)
committerTrond Myklebust <Trond.Myklebust@netapp.com>
Tue, 9 Oct 2007 21:20:40 +0000 (17:20 -0400)
It completely fouls up the RPC call statistics, and serves no useful
purpose.

Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com>
net/sunrpc/clnt.c

index e9866fc93df1346b01683da6b64a8321a15ca6e2..e6a2678ecec3ef5b2ef4fb3232ee5bedcae167de 100644 (file)
@@ -846,8 +846,7 @@ call_allocate(struct rpc_task *task)
        dprintk("RPC: %5u rpc_buffer allocation failed\n", task->tk_pid);
 
        if (RPC_IS_ASYNC(task) || !signalled()) {
-               xprt_release(task);
-               task->tk_action = call_reserve;
+               task->tk_action = call_allocate;
                rpc_delay(task, HZ>>4);
                return;
        }