From: Jianpeng Ma Date: Thu, 25 May 2017 17:01:40 +0000 (+0800) Subject: os/bluestore/BlueStore: Only call once notify_all. X-Git-Tag: v12.1.0~57^2~21^2 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=refs%2Fpull%2F15284%2Fhead;p=ceph.git os/bluestore/BlueStore: Only call once notify_all. All txcs of deferred_running have the same osr, so only call once notify_call. Signed-off-by: Jianpeng Ma --- diff --git a/src/os/bluestore/BlueStore.cc b/src/os/bluestore/BlueStore.cc index 72016d2317a9..087b5c37897e 100644 --- a/src/os/bluestore/BlueStore.cc +++ b/src/os/bluestore/BlueStore.cc @@ -8370,9 +8370,9 @@ void BlueStore::_deferred_aio_finish(OpSequencer *osr) for (auto& i : b->txcs) { TransContext *txc = &i; txc->state = TransContext::STATE_DEFERRED_CLEANUP; - txc->osr->qcond.notify_all(); costs += txc->cost; } + osr->qcond.notify_all(); throttle_deferred_bytes.put(costs); std::lock_guard l(kv_lock); deferred_done_queue.emplace_back(b);