From: Sage Weil Date: Tue, 14 Mar 2017 14:33:17 +0000 (-0400) Subject: os/bluestore: flush old/discarded OpSequencers too X-Git-Tag: v12.0.1~12^2~19 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=7a3e85f1a0cd48654b4826fa527346c4be27210c;p=ceph.git os/bluestore: flush old/discarded OpSequencers too When the Sequencer goes away it get deregistered. If there are still deferred IOs in flight, we need to wait for those too. Signed-off-by: Sage Weil --- diff --git a/src/os/bluestore/BlueStore.cc b/src/os/bluestore/BlueStore.cc index 1fa2ef1d1ed..f870dc0078e 100644 --- a/src/os/bluestore/BlueStore.cc +++ b/src/os/bluestore/BlueStore.cc @@ -7445,6 +7445,11 @@ void BlueStore::_osr_drain_all() { // submit anything pending std::lock_guard l(deferred_lock); + // include deferred osrs in our wait list; these may have been + // deregistered already! + for (auto& osr : deferred_queue) { + s.insert(&osr); + } _deferred_try_submit(); } {