From cb30c9965854e7dbfe851ed0cfaf113b16bcab5e Mon Sep 17 00:00:00 2001 From: Igor Fedotov Date: Mon, 9 Aug 2021 19:14:33 +0300 Subject: [PATCH] os/bluestore: enforce one more non-inclusive comparision against prefer_deferred_size Signed-off-by: Igor Fedotov --- src/os/bluestore/BlueStore.cc | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/src/os/bluestore/BlueStore.cc b/src/os/bluestore/BlueStore.cc index 6d6f7210156..a1325fa5481 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()); -- 2.39.5