diff options
author | Gerd Rausch <gerd.rausch@oracle.com> | 2019-07-16 15:29:17 -0700 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2019-07-17 12:06:52 -0700 |
commit | 3a2886cca703fde5ee21baea9fedf8b1389c59d7 (patch) | |
tree | ebeffb5e2ef043aa46be9929db3a466466df50ce /fs/nfsd/Kconfig | |
parent | 9547dff1085d5935d6070377023096821033e30c (diff) | |
download | linux-stable-3a2886cca703fde5ee21baea9fedf8b1389c59d7.tar.gz linux-stable-3a2886cca703fde5ee21baea9fedf8b1389c59d7.tar.bz2 linux-stable-3a2886cca703fde5ee21baea9fedf8b1389c59d7.zip |
net/rds: Keep track of and wait for FRWR segments in use upon shutdown
Since "rds_ib_free_frmr" and "rds_ib_free_frmr_list" simply put
the FRMR memory segments on the "drop_list" or "free_list",
and it is the job of "rds_ib_flush_mr_pool" to reap those entries
by ultimately issuing a "IB_WR_LOCAL_INV" work-request,
we need to trigger and then wait for all those memory segments
attached to a particular connection to be fully released before
we can move on to release the QP, CQ, etc.
So we make "rds_ib_conn_path_shutdown" wait for one more
atomic_t called "i_fastreg_inuse_count" that keeps track of how
many FRWR memory segments are out there marked "FRMR_IS_INUSE"
(and also wake_up rds_ib_ring_empty_wait, as they go away).
Signed-off-by: Gerd Rausch <gerd.rausch@oracle.com>
Acked-by: Santosh Shilimkar <santosh.shilimkar@oracle.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'fs/nfsd/Kconfig')
0 files changed, 0 insertions, 0 deletions