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: 68791649 ('xprtrdma: Invalidate in the RPC reply ... ') Signed-off-by:Chuck Lever <chuck.lever@oracle.com> Signed-off-by:
Anna Schumaker <Anna.Schumaker@Netapp.com>
Showing
- net/sunrpc/xprtrdma/frwr_ops.c 1 addition, 3 deletionsnet/sunrpc/xprtrdma/frwr_ops.c
- net/sunrpc/xprtrdma/rpc_rdma.c 20 additions, 2 deletionsnet/sunrpc/xprtrdma/rpc_rdma.c
- net/sunrpc/xprtrdma/verbs.c 1 addition, 0 deletionsnet/sunrpc/xprtrdma/verbs.c
- net/sunrpc/xprtrdma/xprt_rdma.h 6 additions, 0 deletionsnet/sunrpc/xprtrdma/xprt_rdma.h
Loading
Please register or sign in to comment