]> git.baikalelectronics.ru Git - kernel.git/commit
xprtrdma: unmap all FMRs during transport disconnect
authorChuck Lever <chuck.lever@oracle.com>
Sun, 9 Nov 2014 01:14:29 +0000 (20:14 -0500)
committerAnna Schumaker <Anna.Schumaker@Netapp.com>
Tue, 25 Nov 2014 18:39:20 +0000 (13:39 -0500)
commit3a5e91ade373610581d200d0ca7c9c1e0aa02db4
treecefc907944bb2dcbefec1a7fbf7a4a2df1e775da
parent806149dc738d89a87933a707950f0dd5ddd0cd70
xprtrdma: unmap all FMRs during transport disconnect

When using RPCRDMA_MTHCAFMR memory registration, after a few
transport disconnect / reconnect cycles, ib_map_phys_fmr() starts to
return EINVAL because the provider has exhausted its map pool.

Make sure that all FMRs are unmapped during transport disconnect,
and that ->send_request remarshals them during an RPC retransmit.
This resets the transport's MRs to ensure that none are leaked
during a disconnect.

Signed-off-by: Chuck Lever <chuck.lever@oracle.com>
Signed-off-by: Anna Schumaker <Anna.Schumaker@Netapp.com>
net/sunrpc/xprtrdma/transport.c
net/sunrpc/xprtrdma/verbs.c