From: Igor Fedotov Date: Mon, 9 Aug 2021 16:14:33 +0000 (+0300) Subject: os/bluestore: enforce one more non-inclusive comparision against prefer_deferred_size X-Git-Tag: v17.1.0~1131^2~1 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=cb30c9965854e7dbfe851ed0cfaf113b16bcab5e;p=ceph.git os/bluestore: enforce one more non-inclusive comparision against prefer_deferred_size Signed-off-by: Igor Fedotov --- diff --git a/src/os/bluestore/BlueStore.cc b/src/os/bluestore/BlueStore.cc index 6d6f72101564..a1325fa54813 100644 --- a/src/os/bluestore/BlueStore.cc +++ b/src/os/bluestore/BlueStore.cc @@ -14263,10 +14263,11 @@ int BlueStore::_do_alloc_write( PExtentVector extents; int64_t left = final_length; - bool deferred_region_small = false; + bool has_chunk2defer = false; + auto prefer_deferred_size_snapshot = prefer_deferred_size.load(); while (left > 0) { ceph_assert(prealloc_left > 0); - deferred_region_small |= (prealloc_pos_length <= prefer_deferred_size.load()); + has_chunk2defer |= (prealloc_pos_length < prefer_deferred_size_snapshot); if (prealloc_pos->length <= left) { prealloc_left -= prealloc_pos->length; left -= prealloc_pos->length; @@ -14321,7 +14322,7 @@ int BlueStore::_do_alloc_write( // queue io if (!g_conf()->bluestore_debug_omit_block_device_write) { - if (deferred_region_small && l->length() < prefer_deferred_size.load()) { + if (has_chunk2defer && l->length() < prefer_deferred_size_snapshot) { dout(20) << __func__ << " deferring 0x" << std::hex << l->length() << std::dec << " write via deferred" << dendl; bluestore_deferred_op_t *op = _get_deferred_op(txc, l->length());