diff options
| author | Linus Torvalds <torvalds@linux-foundation.org> | 2019-04-20 15:55:23 -0400 |
|---|---|---|
| committer | Linus Torvalds <torvalds@linux-foundation.org> | 2019-04-20 15:55:23 -0400 |
| commit | 9e5de623a0cb9374bdcc73c0c098818f0d7ab7e9 (patch) | |
| tree | b861b5777fbea8a01a5da2576699154ee9a37a95 | |
| parent | a06bc2f241f2e6c0c27b48e4c383d6cddd4f6464 (diff) | |
| parent | a7b1a4839ff979b4dd4fb6c1ccd31af11de9ca87 (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.c | 7 |
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) { |
