summaryrefslogtreecommitdiffstats
path: root/net/sunrpc
diff options
context:
space:
mode:
authorChuck Lever <chuck.lever@oracle.com>2023-10-10 13:23:41 -0400
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>2023-11-28 17:20:02 +0000
commitbe739f32a45931c2cfd0f260bb7e11b33a94cd07 (patch)
tree138ca22f27518b05d38ef25fa622984522fcd608 /net/sunrpc
parent3ce1c2c3999b232258f7aabab311d47dda75605c (diff)
downloadlinux-stable-be739f32a45931c2cfd0f260bb7e11b33a94cd07.tar.gz
linux-stable-be739f32a45931c2cfd0f260bb7e11b33a94cd07.tar.bz2
linux-stable-be739f32a45931c2cfd0f260bb7e11b33a94cd07.zip
svcrdma: Drop connection after an RDMA Read error
commit 197115ebf358cb440c73e868b2a0a5ef728decc6 upstream. When an RPC Call message cannot be pulled from the client, that is a message loss, by definition. Close the connection to trigger the client to resend. Cc: <stable@vger.kernel.org> Reviewed-by: Tom Talpey <tom@talpey.com> Signed-off-by: Chuck Lever <chuck.lever@oracle.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Diffstat (limited to 'net/sunrpc')
-rw-r--r--net/sunrpc/xprtrdma/svc_rdma_recvfrom.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/net/sunrpc/xprtrdma/svc_rdma_recvfrom.c b/net/sunrpc/xprtrdma/svc_rdma_recvfrom.c
index 85c8bcaebb80..3b05f90a3e50 100644
--- a/net/sunrpc/xprtrdma/svc_rdma_recvfrom.c
+++ b/net/sunrpc/xprtrdma/svc_rdma_recvfrom.c
@@ -852,7 +852,8 @@ out_readfail:
if (ret == -EINVAL)
svc_rdma_send_error(rdma_xprt, ctxt, ret);
svc_rdma_recv_ctxt_put(rdma_xprt, ctxt);
- return ret;
+ svc_xprt_deferred_close(xprt);
+ return -ENOTCONN;
out_backchannel:
svc_rdma_handle_bc_reply(rqstp, ctxt);