From: Igor Fedotov Date: Wed, 20 Jan 2021 19:57:15 +0000 (+0300) Subject: os/bluestore: be more protective in _deferred_queue X-Git-Tag: v16.2.0~236^2 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=refs%2Fpull%2F38989%2Fhead;p=ceph.git os/bluestore: be more protective in _deferred_queue Signed-off-by: Igor Fedotov (cherry picked from commit 6159a692d98e2316b65038e7e2ae0476f6f2ea53) --- diff --git a/src/os/bluestore/BlueStore.cc b/src/os/bluestore/BlueStore.cc index 34afd92c390e..0ef42cf0e346 100644 --- a/src/os/bluestore/BlueStore.cc +++ b/src/os/bluestore/BlueStore.cc @@ -12268,13 +12268,10 @@ void BlueStore::_deferred_queue(TransContext *txc) dout(20) << __func__ << " txc " << txc << " osr " << txc->osr << dendl; DeferredBatch *tmp; - bool need_lock_again = false; txc->osr->deferred_lock.lock(); { if (!txc->osr->deferred_pending) { tmp = new DeferredBatch(cct, txc->osr.get()); - txc->osr->deferred_lock.unlock(); - need_lock_again = true; } else { tmp = txc->osr->deferred_pending; } @@ -12292,9 +12289,6 @@ void BlueStore::_deferred_queue(TransContext *txc) } { - if (need_lock_again) { - txc->osr->deferred_lock.lock(); - } ++deferred_queue_size; txc->osr->deferred_pending = tmp; // condition "tmp->txcs.size() == 1" mean deferred_pending was originally empty.