summaryrefslogtreecommitdiff
path: root/net/sunrpc/netns.h
diff options
context:
space:
mode:
authorChuck Lever <chuck.lever@oracle.com>2020-02-22 01:01:05 +0300
committerAnna Schumaker <Anna.Schumaker@Netapp.com>2020-03-27 17:47:25 +0300
commite28ce90083f032ca0e8ea03478f5b6a38f5930f7 (patch)
tree470e92922a0c644c51b5625e4bcc716fe1383c36 /net/sunrpc/netns.h
parent745b734c9bb80559b8ca64ae688901afefc1c3fd (diff)
downloadlinux-e28ce90083f032ca0e8ea03478f5b6a38f5930f7.tar.xz
xprtrdma: kmalloc rpcrdma_ep separate from rpcrdma_xprt
Change the rpcrdma_xprt_disconnect() function so that it no longer waits for the DISCONNECTED event. This prevents blocking if the remote is unresponsive. In rpcrdma_xprt_disconnect(), the transport's rpcrdma_ep is detached. Upon return from rpcrdma_xprt_disconnect(), the transport (r_xprt) is ready immediately for a new connection. The RDMA_CM_DEVICE_REMOVAL and RDMA_CM_DISCONNECTED events are now handled almost identically. However, because the lifetimes of rpcrdma_xprt structures and rpcrdma_ep structures are now independent, creating an rpcrdma_ep needs to take a module ref count. The ep now owns most of the hardware resources for a transport. Also, a kref is needed to ensure that rpcrdma_ep sticks around long enough for the cm_event_handler to finish. Signed-off-by: Chuck Lever <chuck.lever@oracle.com> Signed-off-by: Anna Schumaker <Anna.Schumaker@Netapp.com>
Diffstat (limited to 'net/sunrpc/netns.h')
0 files changed, 0 insertions, 0 deletions