linux_dsm_epyc7002/net/sunrpc/xprtrdma
Chuck Lever 4b196dc6fe xprtrdma: Pre-mark remotely invalidated MRs
There are rare cases where an rpcrdma_req and its matched
rpcrdma_rep can be re-used, via rpcrdma_buffer_put, while the RPC
reply handler is still using that req. This is typically due to a
signal firing at just the wrong instant.

As part of closing this race window, avoid using the wrong
rpcrdma_rep to detect remotely invalidated MRs. Mark MRs as
invalidated while we are sure the rep is still OK to use.

BugLink: https://bugzilla.linux-nfs.org/show_bug.cgi?id=305
Fixes: 68791649a7 ('xprtrdma: Invalidate in the RPC reply ... ')
Signed-off-by: Chuck Lever <chuck.lever@oracle.com>
Signed-off-by: Anna Schumaker <Anna.Schumaker@Netapp.com>
2017-07-13 16:00:10 -04:00
..
backchannel.c xprtrdma: Delete an error message for a failed memory allocation in xprt_rdma_bc_setup() 2017-05-24 07:53:37 -04:00
fmr_ops.c xprtrdma: On invalidation failure, remove MWs from rl_registered 2017-07-13 16:00:09 -04:00
frwr_ops.c xprtrdma: Pre-mark remotely invalidated MRs 2017-07-13 16:00:10 -04:00
Makefile svcrdma: Introduce local rdma_rw API helpers 2017-04-25 17:25:55 -04:00
module.c
rpc_rdma.c xprtrdma: Pre-mark remotely invalidated MRs 2017-07-13 16:00:10 -04:00
svc_rdma_backchannel.c svcrdma: Clean up RPC-over-RDMA backchannel reply processing 2017-04-25 17:25:55 -04:00
svc_rdma_marshal.c svcrdma: Clean out old XDR encoders 2017-04-25 17:25:56 -04:00
svc_rdma_recvfrom.c svcrdma: Clean up RPC-over-RDMA backchannel reply processing 2017-04-25 17:25:55 -04:00
svc_rdma_rw.c svcrdma: Introduce local rdma_rw API helpers 2017-04-25 17:25:55 -04:00
svc_rdma_sendto.c svcrdma: Remove the req_map cache 2017-04-25 17:25:55 -04:00
svc_rdma_transport.c svcrdma: Remove the req_map cache 2017-04-25 17:25:55 -04:00
svc_rdma.c svcrdma: Reduce size of sge array in struct svc_rdma_op_ctxt 2017-04-25 17:25:55 -04:00
transport.c xprtrdma: Support unplugging an HCA from under an NFS mount 2017-04-25 16:12:24 -04:00
verbs.c xprtrdma: Pre-mark remotely invalidated MRs 2017-07-13 16:00:10 -04:00
xprt_rdma.h xprtrdma: Pre-mark remotely invalidated MRs 2017-07-13 16:00:10 -04:00