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: v16.2.6~72^2~1 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=bbb08c4ca441d256b8c63b30e404bebb6e255e44;p=ceph.git os/bluestore: enforce one more non-inclusive comparision against prefer_deferred_size Signed-off-by: Igor Fedotov (cherry picked from commit cb30c9965854e7dbfe851ed0cfaf113b16bcab5e) --- diff --git a/src/os/bluestore/BlueStore.cc b/src/os/bluestore/BlueStore.cc index f4badadaa363..eb5aa0cb4ab1 100644 --- a/src/os/bluestore/BlueStore.cc +++ b/src/os/bluestore/BlueStore.cc @@ -14141,10 +14141,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; @@ -14199,7 +14200,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());