summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorTrond Myklebust <Trond.Myklebust@netapp.com>2007-10-01 18:06:48 +0200
committerTrond Myklebust <Trond.Myklebust@netapp.com>2007-10-09 23:20:42 +0200
commit220bcc2afd7011b3e0569fc178331fa983c92c1b (patch)
tree2a9d18da02292c6c6d7b8da7f6dd6a209ea1b57d
parentSUNRPC: Don't call xprt_release() if call_allocate fails (diff)
downloadlinux-220bcc2afd7011b3e0569fc178331fa983c92c1b.tar.xz
linux-220bcc2afd7011b3e0569fc178331fa983c92c1b.zip
SUNRPC: Don't call xprt_release in call refresh
Call it from call_verify() instead... Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com>
-rw-r--r--net/sunrpc/clnt.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/net/sunrpc/clnt.c b/net/sunrpc/clnt.c
index e6a2678ecec3..76be83ee4b04 100644
--- a/net/sunrpc/clnt.c
+++ b/net/sunrpc/clnt.c
@@ -1271,7 +1271,6 @@ call_refresh(struct rpc_task *task)
{
dprint_status(task);
- xprt_release(task); /* Must do to obtain new XID */
task->tk_action = call_refreshresult;
task->tk_status = 0;
task->tk_client->cl_stats->rpcauthrefresh++;
@@ -1389,6 +1388,8 @@ call_verify(struct rpc_task *task)
dprintk("RPC: %5u %s: retry stale creds\n",
task->tk_pid, __FUNCTION__);
rpcauth_invalcred(task);
+ /* Ensure we obtain a new XID! */
+ xprt_release(task);
task->tk_action = call_refresh;
goto out_retry;
case RPC_AUTH_BADCRED: