summaryrefslogtreecommitdiff
path: root/init
diff options
context:
space:
mode:
authorChuck Lever <chuck.lever@oracle.com>2019-10-17 21:31:09 +0300
committerAnna Schumaker <Anna.Schumaker@Netapp.com>2019-10-24 17:30:40 +0300
commit15d9b015d3d1c997893472cb42d9f225a60a9219 (patch)
tree95c9da2cc037e5638508744420431b0c18abbf06 /init
parent9d2da4ff00f37de17fc25c23e50463b58b9e8fec (diff)
downloadlinux-15d9b015d3d1c997893472cb42d9f225a60a9219.tar.xz
xprtrdma: Ensure ri_id is stable during MR recycling
ia->ri_id is replaced during a reconnect. The connect_worker runs with the transport send lock held to prevent ri_id from being dereferenced by the send_request path during this process. Currently, however, there is no guarantee that ia->ri_id is stable in the MR recycling worker, which operates in the background and is not serialized with the connect_worker in any way. But now that Local_Inv completions are being done in process context, we can handle the recycling operation there instead of deferring the recycling work to another process. Because the disconnect path drains all work before allowing tear down to proceed, it is guaranteed that Local Invalidations complete only while the ri_id pointer is stable. Signed-off-by: Chuck Lever <chuck.lever@oracle.com> Signed-off-by: Anna Schumaker <Anna.Schumaker@Netapp.com>
Diffstat (limited to 'init')
0 files changed, 0 insertions, 0 deletions