From: Sage Weil Date: Tue, 11 Jul 2017 19:21:01 +0000 (-0400) Subject: os/bluestore: only submit deferred if there is any X-Git-Tag: v12.1.1~47^2 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=8cacf28ebbcb535d79e661a08fdcd3376904e09b;p=ceph.git os/bluestore: only submit deferred if there is any We drop the lock, so it's possible another thread submits the pending. (_deferred_submit_unlock assumes osr->deferred_pending != nullptr.) Signed-off-by: Sage Weil --- diff --git a/src/os/bluestore/BlueStore.cc b/src/os/bluestore/BlueStore.cc index 6c3cb7ceae67..bcde658b05ab 100644 --- a/src/os/bluestore/BlueStore.cc +++ b/src/os/bluestore/BlueStore.cc @@ -8599,7 +8599,7 @@ void BlueStore::deferred_try_submit() osrs.push_back(&osr); } for (auto& osr : osrs) { - if (!osr->deferred_running) { + if (osr->deferred_pending && !osr->deferred_running) { _deferred_submit_unlock(osr.get()); deferred_lock.lock(); }