kernel_samsung_a53x/net/sunrpc/xprtrdma
Dan Aloni eee7491ce2 rpcrdma: fix handling for RDMA_CM_EVENT_DEVICE_REMOVAL
[ Upstream commit 4836da219781ec510c4c0303df901aa643507a7a ]

Under the scenario of IB device bonding, when bringing down one of the
ports, or all ports, we saw xprtrdma entering a non-recoverable state
where it is not even possible to complete the disconnect and shut it
down the mount, requiring a reboot. Following debug, we saw that
transport connect never ended after receiving the
RDMA_CM_EVENT_DEVICE_REMOVAL callback.

The DEVICE_REMOVAL callback is irrespective of whether the CM_ID is
connected, and ESTABLISHED may not have happened. So need to work with
each of these states accordingly.

Fixes: 2acc5cae2923 ('xprtrdma: Prevent dereferencing r_xprt->rx_ep after it is freed')
Cc: Sagi Grimberg <sagi.grimberg@vastdata.com>
Signed-off-by: Dan Aloni <dan.aloni@vastdata.com>
Reviewed-by: Sagi Grimberg <sagi@grimberg.me>
Reviewed-by: Chuck Lever <chuck.lever@oracle.com>
Signed-off-by: Trond Myklebust <trond.myklebust@hammerspace.com>
Signed-off-by: Sasha Levin <sashal@kernel.org>
2024-11-19 12:27:09 +01:00
..
backchannel.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
frwr_ops.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
Makefile Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
module.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
rpc_rdma.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
svc_rdma.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
svc_rdma_backchannel.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
svc_rdma_recvfrom.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
svc_rdma_rw.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
svc_rdma_sendto.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
svc_rdma_transport.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
transport.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
verbs.c rpcrdma: fix handling for RDMA_CM_EVENT_DEVICE_REMOVAL 2024-11-19 12:27:09 +01:00
xprt_rdma.h Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00