We need to wake the kv thread whenever setting deferred_aggressive to
ensure that txns with deferred io that have committed but haven't submitted
their deferred writes get submitted. This aligns us with the other
users of deferred_aggressive (e.g., _osr_drain_all).
Signed-off-by: Sage Weil <sage@redhat.com>
(cherry picked from commit
633b17007701d87903fe1d10b19c44210a3326eb)
<< dendl;
++deferred_aggressive;
deferred_try_submit();
+ {
+ // wake up any previously finished deferred events
+ std::lock_guard<std::mutex> l(kv_lock);
+ kv_cond.notify_one();
+ }
throttle_deferred_bytes.get(txc->cost);
--deferred_aggressive;
}