diff mbox series

Revert "SUNRPC dont update timeout value on connection reset"

Message ID 20230917232646.30810-1-trondmy@kernel.org (mailing list archive)
State New, archived
Headers show
Series Revert "SUNRPC dont update timeout value on connection reset" | expand

Commit Message

Trond Myklebust Sept. 17, 2023, 11:26 p.m. UTC
From: Trond Myklebust <trond.myklebust@hammerspace.com>

This reverts commit 88428cc4ae7abcc879295fbb19373dd76aad2bdd.

The problem this commit is intended to fix was comprehensively fixed
in commit 7de62bc09fe6 ("SUNRPC dont update timeout value on connection
reset").
Since then, this commit has been preventing the correct timeout of soft
mounted requests.

Cc: stable@vger.kernel.org # 5.9.x: 09252177d5f9: SUNRPC: Handle major timeout in xprt_adjust_timeout()
Cc: stable@vger.kernel.org # 5.9.x: 7de62bc09fe6: SUNRPC dont update timeout value on connection
reset
Cc: stable@vger.kernel.org # 5.9.x
Signed-off-by: Trond Myklebust <trond.myklebust@hammerspace.com>
---
 net/sunrpc/clnt.c | 3 +--
 1 file changed, 1 insertion(+), 2 deletions(-)

Comments

Olga Kornievskaia Sept. 18, 2023, 2:55 a.m. UTC | #1
On Sun, Sep 17, 2023 at 7:38 PM <trondmy@kernel.org> wrote:
>
> From: Trond Myklebust <trond.myklebust@hammerspace.com>
>
> This reverts commit 88428cc4ae7abcc879295fbb19373dd76aad2bdd.
>
> The problem this commit is intended to fix was comprehensively fixed
> in commit 7de62bc09fe6 ("SUNRPC dont update timeout value on connection
> reset").
> Since then, this commit has been preventing the correct timeout of soft
> mounted requests.

And if we revert this commit then we get back the problem that when
the server RSTs the connection between the timeouts then the client
waits double the time (instead of the correct time).

> Cc: stable@vger.kernel.org # 5.9.x: 09252177d5f9: SUNRPC: Handle major timeout in xprt_adjust_timeout()
> Cc: stable@vger.kernel.org # 5.9.x: 7de62bc09fe6: SUNRPC dont update timeout value on connection
> reset
> Cc: stable@vger.kernel.org # 5.9.x
> Signed-off-by: Trond Myklebust <trond.myklebust@hammerspace.com>
> ---
>  net/sunrpc/clnt.c | 3 +--
>  1 file changed, 1 insertion(+), 2 deletions(-)
>
> diff --git a/net/sunrpc/clnt.c b/net/sunrpc/clnt.c
> index 5a7de7e55548..7f533c1041a4 100644
> --- a/net/sunrpc/clnt.c
> +++ b/net/sunrpc/clnt.c
> @@ -2476,8 +2476,7 @@ call_status(struct rpc_task *task)
>                 goto out_exit;
>         }
>         task->tk_action = call_encode;
> -       if (status != -ECONNRESET && status != -ECONNABORTED)
> -               rpc_check_timeout(task);
> +       rpc_check_timeout(task);
>         return;
>  out_exit:
>         rpc_call_rpcerror(task, status);
> --
> 2.41.0
>
Trond Myklebust Sept. 18, 2023, 4:40 a.m. UTC | #2
On Sun, 2023-09-17 at 22:55 -0400, Olga Kornievskaia wrote:
> On Sun, Sep 17, 2023 at 7:38 PM <trondmy@kernel.org> wrote:
> > 
> > From: Trond Myklebust <trond.myklebust@hammerspace.com>
> > 
> > This reverts commit 88428cc4ae7abcc879295fbb19373dd76aad2bdd.
> > 
> > The problem this commit is intended to fix was comprehensively
> > fixed
> > in commit 7de62bc09fe6 ("SUNRPC dont update timeout value on
> > connection
> > reset").
> > Since then, this commit has been preventing the correct timeout of
> > soft
> > mounted requests.
> 
> And if we revert this commit then we get back the problem that when
> the server RSTs the connection between the timeouts then the client
> waits double the time (instead of the correct time).

No, we don't. That's what commit 7de62bc09fe6 (mentioned above) fixes.

> 
> > Cc: stable@vger.kernel.org # 5.9.x: 09252177d5f9: SUNRPC: Handle
> > major timeout in xprt_adjust_timeout()
> > Cc: stable@vger.kernel.org # 5.9.x: 7de62bc09fe6: SUNRPC dont
> > update timeout value on connection
> > reset
> > Cc: stable@vger.kernel.org # 5.9.x
> > Signed-off-by: Trond Myklebust <trond.myklebust@hammerspace.com>
> > ---
> >  net/sunrpc/clnt.c | 3 +--
> >  1 file changed, 1 insertion(+), 2 deletions(-)
> > 
> > diff --git a/net/sunrpc/clnt.c b/net/sunrpc/clnt.c
> > index 5a7de7e55548..7f533c1041a4 100644
> > --- a/net/sunrpc/clnt.c
> > +++ b/net/sunrpc/clnt.c
> > @@ -2476,8 +2476,7 @@ call_status(struct rpc_task *task)
> >                 goto out_exit;
> >         }
> >         task->tk_action = call_encode;
> > -       if (status != -ECONNRESET && status != -ECONNABORTED)
> > -               rpc_check_timeout(task);
> > +       rpc_check_timeout(task);
> >         return;
> >  out_exit:
> >         rpc_call_rpcerror(task, status);
> > --
> > 2.41.0
> >
diff mbox series

Patch

diff --git a/net/sunrpc/clnt.c b/net/sunrpc/clnt.c
index 5a7de7e55548..7f533c1041a4 100644
--- a/net/sunrpc/clnt.c
+++ b/net/sunrpc/clnt.c
@@ -2476,8 +2476,7 @@  call_status(struct rpc_task *task)
 		goto out_exit;
 	}
 	task->tk_action = call_encode;
-	if (status != -ECONNRESET && status != -ECONNABORTED)
-		rpc_check_timeout(task);
+	rpc_check_timeout(task);
 	return;
 out_exit:
 	rpc_call_rpcerror(task, status);