Re: [PATCH] SUNRPC: Handle -ETIMEDOUT return from tlshd

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi Ben,

On Tue, Feb 11, 2025 at 12:32 PM Benjamin Coddington
<bcodding@xxxxxxxxxx> wrote:
>
> If the TLS handshake attempt returns -ETIMEDOUT, we currently translate
> that error into -EACCES.  This becomes problematic for cases where the RPC
> layer is attempting to re-connect in paths that don't resonably handle
> -EACCES, for example: writeback.  The RPC layer can handle -ETIMEDOUT quite
> well, however - so if the handshake returns this error let's just pass it
> along.

Do you think it would be reasonable to add:
        Fixes: 75eb6af7acdf ("SUNRPC: Add a TCP-with-TLS RPC transport class")
to this patch?

Thanks,
Anna

>
> Signed-off-by: Benjamin Coddington <bcodding@xxxxxxxxxx>
> ---
>  net/sunrpc/xprtsock.c | 10 +++++++++-
>  1 file changed, 9 insertions(+), 1 deletion(-)
>
> diff --git a/net/sunrpc/xprtsock.c b/net/sunrpc/xprtsock.c
> index c60936d8cef7..6b80b2aaf763 100644
> --- a/net/sunrpc/xprtsock.c
> +++ b/net/sunrpc/xprtsock.c
> @@ -2581,7 +2581,15 @@ static void xs_tls_handshake_done(void *data, int status, key_serial_t peerid)
>         struct sock_xprt *lower_transport =
>                                 container_of(lower_xprt, struct sock_xprt, xprt);
>
> -       lower_transport->xprt_err = status ? -EACCES : 0;
> +       switch (status) {
> +       case 0:
> +       case -EACCES:
> +       case -ETIMEDOUT:
> +               lower_transport->xprt_err = status;
> +               break;
> +       default:
> +               lower_transport->xprt_err = -EACCES;
> +       }
>         complete(&lower_transport->handshake_done);
>         xprt_put(lower_xprt);
>  }
>
> base-commit: ffd294d346d185b70e28b1a28abe367bbfe53c04
> --
> 2.47.0
>





[Index of Archives]     [Linux Filesystem Development]     [Linux USB Development]     [Linux Media Development]     [Video for Linux]     [Linux NILFS]     [Linux Audio Users]     [Yosemite Info]     [Linux SCSI]

  Powered by Linux