linux_dsm_epyc7002/net/sunrpc/xprtrdma
Chuck Lever 15d9b015d3 xprtrdma: Ensure ri_id is stable during MR recycling
ia->ri_id is replaced during a reconnect. The connect_worker runs
with the transport send lock held to prevent ri_id from being
dereferenced by the send_request path during this process.

Currently, however, there is no guarantee that ia->ri_id is stable
in the MR recycling worker, which operates in the background and is
not serialized with the connect_worker in any way.

But now that Local_Inv completions are being done in process
context, we can handle the recycling operation there instead of
deferring the recycling work to another process. Because the
disconnect path drains all work before allowing tear down to
proceed, it is guaranteed that Local Invalidations complete only
while the ri_id pointer is stable.

Signed-off-by: Chuck Lever <chuck.lever@oracle.com>
Signed-off-by: Anna Schumaker <Anna.Schumaker@Netapp.com>
2019-10-24 10:30:40 -04:00
..
backchannel.c xprtrdma: Fix bc_max_slots return value 2019-08-21 14:35:49 -04:00
frwr_ops.c xprtrdma: Ensure ri_id is stable during MR recycling 2019-10-24 10:30:40 -04:00
Makefile xprtrdma: Remove support for FMR memory registration 2019-01-02 12:05:17 -05:00
module.c NFS client updates for Linux 4.18 2018-06-12 10:09:03 -07:00
rpc_rdma.c xprtrdma: Manage MRs in context of a single connection 2019-10-24 10:30:40 -04:00
svc_rdma_backchannel.c SUNRPC: Remove the bh-safe lock requirement on xprt->transport_lock 2019-07-06 14:54:48 -04:00
svc_rdma_recvfrom.c svcrdma: Use llist for managing cache of recv_ctxts 2019-08-19 10:59:28 -04:00
svc_rdma_rw.c scsi: lib/sg_pool.c: improve APIs for allocating sg pool 2019-06-20 15:21:33 -04:00
svc_rdma_sendto.c svcrdma: Remove syslog warnings in work completion handlers 2019-02-06 15:37:15 -05:00
svc_rdma_transport.c Highlights: 2019-09-27 17:00:27 -07:00
svc_rdma.c svcrdma: Remove svc_rdma_wq 2019-08-19 10:59:28 -04:00
transport.c xprtrdma: Initialize rb_credits in one place 2019-10-24 10:30:39 -04:00
verbs.c xprtrdma: Manage MRs in context of a single connection 2019-10-24 10:30:40 -04:00
xprt_rdma.h xprtrdma: Ensure ri_id is stable during MR recycling 2019-10-24 10:30:40 -04:00