diff options
Diffstat (limited to 'net/sunrpc/clnt.c')
-rw-r--r-- | net/sunrpc/clnt.c | 9 |
1 files changed, 6 insertions, 3 deletions
diff --git a/net/sunrpc/clnt.c b/net/sunrpc/clnt.c index ea14314331b0..522b06849f86 100644 --- a/net/sunrpc/clnt.c +++ b/net/sunrpc/clnt.c | |||
@@ -1240,10 +1240,13 @@ call_decode(struct rpc_task *task) | |||
1240 | task->tk_status); | 1240 | task->tk_status); |
1241 | return; | 1241 | return; |
1242 | out_retry: | 1242 | out_retry: |
1243 | req->rq_received = req->rq_private_buf.len = 0; | ||
1244 | task->tk_status = 0; | 1243 | task->tk_status = 0; |
1245 | if (task->tk_client->cl_discrtry) | 1244 | /* Note: call_verify() may have freed the RPC slot */ |
1246 | xprt_force_disconnect(task->tk_xprt); | 1245 | if (task->tk_rqstp == req) { |
1246 | req->rq_received = req->rq_private_buf.len = 0; | ||
1247 | if (task->tk_client->cl_discrtry) | ||
1248 | xprt_force_disconnect(task->tk_xprt); | ||
1249 | } | ||
1247 | } | 1250 | } |
1248 | 1251 | ||
1249 | /* | 1252 | /* |