linux/net/sunrpc/xprtrdma
Shirley Ma ff79c74dca NFS/RDMA Release resources in svcrdma when device is removed
When removing underlying RDMA device, the rmmod will hang forever if there
are any outstanding NFS/RDMA client mounts. The outstanding NFS/RDMA counts
could also prevent the server from shutting down. Further debugging shows
that the existing connections are not teared down and resource are not
released when receiving RDMA_CM_EVENT_DEVICE_REMOVAL event. It seems the
original code missing svc_xprt_put() in RDMA_CM_EVENT_REMOVAL event handler
thus svc_xprt_free is never invoked to release the existing connection
resources.

The patch has been passed removing, adding device back and forth without
stopping NFS/RDMA service. This will also allow a device to be unplugged
and swapped out without shutting down NFS service.

BugLink: https://bugzilla.linux-nfs.org/show_bug.cgi?id=252
Signed-off-by: Shirley Ma <shirley.ma@oracle.com>
Reviewed-by: Chuck Lever <chuck.lever@oracle.com>
Signed-off-by: J. Bruce Fields <bfields@redhat.com>
2015-07-20 14:58:47 -04:00
..
fmr_ops.c xprtrdma: Reduce per-transport MR allocation 2015-06-12 13:10:37 -04:00
frwr_ops.c NFS client updates for Linux 4.2 2015-07-02 11:32:23 -07: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: Remove ->ro_reset 2015-06-12 13:10:37 -04:00
rpc_rdma.c xprtrdma: Acquire MRs in rpcrdma_register_external() 2015-06-12 13:10:37 -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 NFS/RDMA Release resources in svcrdma when device is removed 2015-07-20 14:58:47 -04:00
svc_rdma.c rpcrdma: Merge svcrdma and xprtrdma modules into one 2015-06-04 16:56:02 -04:00
transport.c NFS client updates for Linux 4.2 2015-07-02 11:32:23 -07:00
verbs.c NFS client updates for Linux 4.2 2015-07-02 11:32:23 -07:00
xprt_rdma.h NFS client updates for Linux 4.2 2015-07-02 11:32:23 -07:00