aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorLinus Torvalds <torvalds@linux-foundation.org>2019-04-20 15:55:23 -0400
committerLinus Torvalds <torvalds@linux-foundation.org>2019-04-20 15:55:23 -0400
commit9e5de623a0cb9374bdcc73c0c098818f0d7ab7e9 (patch)
treeb861b5777fbea8a01a5da2576699154ee9a37a95
parenta06bc2f241f2e6c0c27b48e4c383d6cddd4f6464 (diff)
parenta7b1a4839ff979b4dd4fb6c1ccd31af11de9ca87 (diff)
Merge tag 'nfs-for-5.1-5' of git://git.linux-nfs.org/projects/trondmy/linux-nfs
Pull NFS client bugfix from Trond Myklebust: "Fix a regression in which an RPC call can be tagged with an error despite the transmission being successful" * tag 'nfs-for-5.1-5' of git://git.linux-nfs.org/projects/trondmy/linux-nfs: SUNRPC: Ignore queue transmission errors on successful transmission
-rw-r--r--net/sunrpc/clnt.c7
1 files changed, 5 insertions, 2 deletions
diff --git a/net/sunrpc/clnt.c b/net/sunrpc/clnt.c
index 1d0395ef62c9..8ff11dc98d7f 100644
--- a/net/sunrpc/clnt.c
+++ b/net/sunrpc/clnt.c
@@ -2081,8 +2081,8 @@ call_transmit_status(struct rpc_task *task)
2081 * test first. 2081 * test first.
2082 */ 2082 */
2083 if (rpc_task_transmitted(task)) { 2083 if (rpc_task_transmitted(task)) {
2084 if (task->tk_status == 0) 2084 task->tk_status = 0;
2085 xprt_request_wait_receive(task); 2085 xprt_request_wait_receive(task);
2086 return; 2086 return;
2087 } 2087 }
2088 2088
@@ -2167,6 +2167,9 @@ call_bc_transmit_status(struct rpc_task *task)
2167{ 2167{
2168 struct rpc_rqst *req = task->tk_rqstp; 2168 struct rpc_rqst *req = task->tk_rqstp;
2169 2169
2170 if (rpc_task_transmitted(task))
2171 task->tk_status = 0;
2172
2170 dprint_status(task); 2173 dprint_status(task);
2171 2174
2172 switch (task->tk_status) { 2175 switch (task->tk_status) {