From: Jianpeng Ma Date: Thu, 16 Nov 2017 14:11:07 +0000 (+0800) Subject: os/bluestore: remove _reap_collection in umount. X-Git-Tag: v12.2.5~97^2~2 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=b813d2834ac69b3530141edafe486346a9b372a4;p=ceph.git os/bluestore: remove _reap_collection in umount. Queue removed collections and reap removed collection in the same thread(_kv_finalize_thread). If this thread terminated and mean all removed collection handle. Unless expection, so add a assert. Signed-off-by: Jianpeng Ma (cherry picked from commit ab4f797bfd3739e9722615abe8be57a7bd364c5e) --- diff --git a/src/os/bluestore/BlueStore.cc b/src/os/bluestore/BlueStore.cc index 6c4295e059ee..9aaca0c1d54c 100644 --- a/src/os/bluestore/BlueStore.cc +++ b/src/os/bluestore/BlueStore.cc @@ -5499,7 +5499,6 @@ int BlueStore::umount() mempool_thread.shutdown(); dout(20) << __func__ << " stopping kv thread" << dendl; _kv_stop(); - _reap_collections(); _flush_cache(); dout(20) << __func__ << " closing" << dendl; @@ -8425,6 +8424,7 @@ void BlueStore::_kv_stop() } kv_sync_thread.join(); kv_finalize_thread.join(); + assert(removed_collections.empty()); { std::lock_guard l(kv_lock); kv_stop = false;