sunrpc: fix loss of task->tk_status after rpc_delay call in xprt_alloc_slot
authorTrond Myklebust <Trond.Myklebust@netapp.com>
Sat, 19 May 2012 16:12:53 +0000 (12:12 -0400)
committerTrond Myklebust <Trond.Myklebust@netapp.com>
Sat, 19 May 2012 16:12:53 +0000 (12:12 -0400)
commit1afeaf5c29aa07db25760d2fbed5c08a3aec3498
treeb8fefaefd78e8d4cc3378378e968987297f73c04
parent6b34309936ed5c85cbe5868655814065f42c2f38
sunrpc: fix loss of task->tk_status after rpc_delay call in xprt_alloc_slot

xprt_alloc_slot will call rpc_delay() to make the task wait a bit before
retrying when it gets back an -ENOMEM error from xprt_dynamic_alloc_slot.
The problem is that rpc_delay will clear the task->tk_status, causing
call_reserveresult to abort the task.

The solution is simply to let call_reserveresult handle the ENOMEM error
directly.

Reported-by: Jeff Layton <jlayton@redhat.com>
Cc: stable@vger.kernel.org [>= 3.1]
Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com>
net/sunrpc/clnt.c
net/sunrpc/xprt.c