From: Trond Myklebust Date: Sun, 17 Sep 2023 13:06:05 +0000 (-0400) Subject: SUNRPC: ECONNRESET might require a rebind X-Git-Tag: v6.5.13~332 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=0b8fb1758ef6723687cc45e4ba7017a586969be3;p=thirdparty%2Fkernel%2Fstable.git SUNRPC: ECONNRESET might require a rebind [ Upstream commit 4b09ca1508a60be30b2e3940264e93d7aeb5c97e ] If connect() is returning ECONNRESET, it usually means that nothing is listening on that port. If so, a rebind might be required in order to obtain the new port on which the RPC service is listening. Fixes: fd01b2597941 ("SUNRPC: ECONNREFUSED should cause a rebind.") Signed-off-by: Trond Myklebust Signed-off-by: Sasha Levin --- diff --git a/net/sunrpc/clnt.c b/net/sunrpc/clnt.c index 9fb0ccabc1a26..2e3b7b2c1b431 100644 --- a/net/sunrpc/clnt.c +++ b/net/sunrpc/clnt.c @@ -2169,6 +2169,7 @@ call_connect_status(struct rpc_task *task) task->tk_status = 0; switch (status) { case -ECONNREFUSED: + case -ECONNRESET: /* A positive refusal suggests a rebind is needed. */ if (RPC_IS_SOFTCONN(task)) break; @@ -2177,7 +2178,6 @@ call_connect_status(struct rpc_task *task) goto out_retry; } fallthrough; - case -ECONNRESET: case -ECONNABORTED: case -ENETDOWN: case -ENETUNREACH: