SUNRPC: Handle -ETIMEDOUT return from tlshd
[ Upstream commit7a2f6f7687] 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. Fixes:75eb6af7ac("SUNRPC: Add a TCP-with-TLS RPC transport class") Signed-off-by: Benjamin Coddington <bcodding@redhat.com> Signed-off-by: Anna Schumaker <anna.schumaker@oracle.com> Signed-off-by: Sasha Levin <sashal@kernel.org>
This commit is contained in:
committed by
Greg Kroah-Hartman
parent
c688d2d8b0
commit
fc238db6bf
@@ -2561,7 +2561,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);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user