linux/net/sunrpc/xprtrdma
Devesh Sharma d0f36c46de xprtrdma: take HCA driver refcount at client
This is a rework of the following patch sent almost a year back:
http://www.mail-archive.com/linux-rdma%40vger.kernel.org/msg20730.html

In presence of active mount if someone tries to rmmod vendor-driver, the
command remains stuck forever waiting for destruction of all rdma-cm-id.
in worst case client can crash during shutdown with active mounts.

The existing code assumes that ia->ri_id->device cannot change during
the lifetime of a transport. xprtrdma do not have support for
DEVICE_REMOVAL event either. Lifting that assumption and adding support
for DEVICE_REMOVAL event is a long chain of work, and is in plan.

The community decided that preventing the hang right now is more
important than waiting for architectural changes.

Thus, this patch introduces a temporary workaround to acquire HCA driver
module reference count during the mount of a nfs-rdma mount point.

Signed-off-by: Devesh Sharma <devesh.sharma@avagotech.com>
Signed-off-by: Chuck Lever <chuck.lever@oracle.com>
Reviewed-by: Sagi Grimberg <sagig@dev.mellanox.co.il>
Signed-off-by: Anna Schumaker <Anna.Schumaker@Netapp.com>
2015-08-05 16:22:56 -04:00
..
fmr_ops.c xprtrdma: Clean up rpcrdma_ia_open() 2015-08-05 16:21:27 -04:00
frwr_ops.c xprtrdma: Clean up rpcrdma_ia_open() 2015-08-05 16:21:27 -04:00
Makefile rpcrdma: Merge svcrdma and xprtrdma modules into one 2015-06-04 16:56:02 -04:00
module.c rpcrdma: Merge svcrdma and xprtrdma modules into one 2015-06-04 16:56:02 -04:00
physical_ops.c xprtrdma: Clean up rpcrdma_ia_open() 2015-08-05 16:21:27 -04:00
rpc_rdma.c xprtrdma: Count RDMA_NOMSG type calls 2015-08-05 16:21:28 -04:00
svc_rdma_marshal.c svcrdma: Keep rpcrdma_msg fields in network byte-order 2015-06-04 16:55:59 -04:00
svc_rdma_recvfrom.c Merge branch 'for-4.2' of git://linux-nfs.org/~bfields/linux 2015-06-27 10:14:39 -07:00
svc_rdma_sendto.c svcrdma: Replace GFP_KERNEL in a loop with GFP_NOFAIL 2015-06-04 16:56:00 -04:00
svc_rdma_transport.c Merge branch 'for-4.2' of git://linux-nfs.org/~bfields/linux 2015-06-27 10:14:39 -07:00
svc_rdma.c rpcrdma: Merge svcrdma and xprtrdma modules into one 2015-06-04 16:56:02 -04:00
transport.c xprtrdma: Count RDMA_NOMSG type calls 2015-08-05 16:21:28 -04:00
verbs.c xprtrdma: take HCA driver refcount at client 2015-08-05 16:22:56 -04:00
xprt_rdma.h xprtrdma: Count RDMA_NOMSG type calls 2015-08-05 16:21:28 -04:00