From: Jianpeng Ma Date: Tue, 12 Jun 2018 15:40:38 +0000 (+0800) Subject: os/bluestore: narrow qlock in _deferred_aio_finish X-Git-Tag: v14.0.1~1007^2~1 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=dab7647e75b79038f26af61357bee7edefbfa7d5;p=ceph.git os/bluestore: narrow qlock in _deferred_aio_finish Signed-off-by: Jianpeng Ma --- diff --git a/src/os/bluestore/BlueStore.cc b/src/os/bluestore/BlueStore.cc index 1a9c9895e644..b9a8ddd6b54b 100644 --- a/src/os/bluestore/BlueStore.cc +++ b/src/os/bluestore/BlueStore.cc @@ -9445,14 +9445,16 @@ void BlueStore::_deferred_aio_finish(OpSequencer *osr) { uint64_t costs = 0; - std::lock_guard l2(osr->qlock); - for (auto& i : b->txcs) { - TransContext *txc = &i; - txc->log_state_latency(logger, l_bluestore_state_deferred_aio_wait_lat); - txc->state = TransContext::STATE_DEFERRED_CLEANUP; - costs += txc->cost; + { + std::lock_guard l2(osr->qlock); + for (auto& i : b->txcs) { + TransContext *txc = &i; + txc->log_state_latency(logger, l_bluestore_state_deferred_aio_wait_lat); + txc->state = TransContext::STATE_DEFERRED_CLEANUP; + costs += txc->cost; + } + osr->qcond.notify_all(); } - osr->qcond.notify_all(); throttle_deferred_bytes.put(costs); std::lock_guard l(kv_lock); deferred_done_queue.emplace_back(b);