| From ec6017d9035986a36de064f48a63245930bfad6f Mon Sep 17 00:00:00 2001 |
| From: Olga Kornievskaia <kolga@netapp.com> |
| Date: Wed, 29 May 2019 10:46:00 -0400 |
| Subject: SUNRPC fix regression in umount of a secure mount |
| |
| From: Olga Kornievskaia <kolga@netapp.com> |
| |
| commit ec6017d9035986a36de064f48a63245930bfad6f upstream. |
| |
| If call_status returns ENOTCONN, we need to re-establish the connection |
| state after. Otherwise the client goes into an infinite loop of call_encode, |
| call_transmit, call_status (ENOTCONN), call_encode. |
| |
| Fixes: c8485e4d63 ("SUNRPC: Handle ECONNREFUSED correctly in xprt_transmit()") |
| Signed-off-by: Olga Kornievskaia <kolga@netapp.com> |
| Cc: stable@vger.kernel.org # v2.6.29+ |
| Signed-off-by: Anna Schumaker <Anna.Schumaker@Netapp.com> |
| Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> |
| |
| --- |
| net/sunrpc/clnt.c | 2 +- |
| 1 file changed, 1 insertion(+), 1 deletion(-) |
| |
| --- a/net/sunrpc/clnt.c |
| +++ b/net/sunrpc/clnt.c |
| @@ -2260,13 +2260,13 @@ call_status(struct rpc_task *task) |
| case -ECONNREFUSED: |
| case -ECONNRESET: |
| case -ECONNABORTED: |
| + case -ENOTCONN: |
| rpc_force_rebind(clnt); |
| /* fall through */ |
| case -EADDRINUSE: |
| rpc_delay(task, 3*HZ); |
| /* fall through */ |
| case -EPIPE: |
| - case -ENOTCONN: |
| case -EAGAIN: |
| break; |
| case -EIO: |