]> www.infradead.org Git - users/jedix/linux-maple.git/commit
xprtrdma: Remove ->ro_reset
authorChuck Lever <chuck.lever@oracle.com>
Tue, 25 Aug 2015 18:52:17 +0000 (12:52 -0600)
committerChuck Lever <chuck.lever@oracle.com>
Mon, 31 Aug 2015 20:45:56 +0000 (14:45 -0600)
commit20b5c7632c914ebc06ea0d463f98de842971cc65
treed3a9e7038a903944fd8cb3fac67d1179a81940f5
parentfefb138e72592a2fdbfb4a17103c6aa9941a0012
xprtrdma: Remove ->ro_reset

[ Upstream commit 3269a94b6206d4fe10dd96cb37e6b0035ee42cd2 ]

An RPC can exit at any time. When it does so, xprt_rdma_free() is
called, and it calls ->op_unmap().

If ->ro_reset() is running due to a transport disconnect, the two
methods can race while processing the same rpcrdma_mw. The results
are unpredictable.

Because of this, in previous patches I've altered ->ro_map() to
handle MR reset. ->ro_reset() is no longer needed and can be
removed.

Signed-off-by: Chuck Lever <chuck.lever@oracle.com>
Reviewed-by: Steve Wise <swise@opengridcomputing.com>
Reviewed-by: Sagi Grimberg <sagig@mellanox.com>
Reviewed-by: Devesh Sharma <devesh.sharma@avagotech.com>
Tested-By: Devesh Sharma <devesh.sharma@avagotech.com>
Reviewed-by: Doug Ledford <dledford@redhat.com>
Signed-off-by: Anna Schumaker <Anna.Schumaker@Netapp.com>
net/sunrpc/xprtrdma/fmr_ops.c
net/sunrpc/xprtrdma/frwr_ops.c
net/sunrpc/xprtrdma/physical_ops.c
net/sunrpc/xprtrdma/verbs.c
net/sunrpc/xprtrdma/xprt_rdma.h