diff options
author | Chuck Lever | 2015-05-26 17:52:54 +0200 |
---|---|---|
committer | Anna Schumaker | 2015-06-12 19:10:37 +0200 |
commit | 3269a94b6206d4fe10dd96cb37e6b0035ee42cd2 (patch) | |
tree | ea8d73de440da6ce477cbd59f8f2fec285412f30 /net/sunrpc/xprtrdma/xprt_rdma.h | |
parent | xprtrdma: Remove unused LOCAL_INV recovery logic (diff) | |
download | kernel-qcow2-linux-3269a94b6206d4fe10dd96cb37e6b0035ee42cd2.tar.gz kernel-qcow2-linux-3269a94b6206d4fe10dd96cb37e6b0035ee42cd2.tar.xz kernel-qcow2-linux-3269a94b6206d4fe10dd96cb37e6b0035ee42cd2.zip |
xprtrdma: Remove ->ro_reset
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>
Diffstat (limited to 'net/sunrpc/xprtrdma/xprt_rdma.h')
-rw-r--r-- | net/sunrpc/xprtrdma/xprt_rdma.h | 1 |
1 files changed, 0 insertions, 1 deletions
diff --git a/net/sunrpc/xprtrdma/xprt_rdma.h b/net/sunrpc/xprtrdma/xprt_rdma.h index c5862a4a5192..f19376d35750 100644 --- a/net/sunrpc/xprtrdma/xprt_rdma.h +++ b/net/sunrpc/xprtrdma/xprt_rdma.h @@ -352,7 +352,6 @@ struct rpcrdma_memreg_ops { struct rpcrdma_create_data_internal *); size_t (*ro_maxpages)(struct rpcrdma_xprt *); int (*ro_init)(struct rpcrdma_xprt *); - void (*ro_reset)(struct rpcrdma_xprt *); void (*ro_destroy)(struct rpcrdma_buffer *); const char *ro_displayname; }; |