]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commitdiff
os/bluestore: enforce one more non-inclusive comparision against prefer_deferred_size
authorIgor Fedotov <ifedotov@suse.com>
Mon, 9 Aug 2021 16:14:33 +0000 (19:14 +0300)
committerNeha Ojha <nojha@redhat.com>
Thu, 12 Aug 2021 18:52:28 +0000 (18:52 +0000)
Signed-off-by: Igor Fedotov <ifedotov@suse.com>
(cherry picked from commit cb30c9965854e7dbfe851ed0cfaf113b16bcab5e)

src/os/bluestore/BlueStore.cc

index f4badadaa363a8e005c0294630bcbcb6a73bbba3..eb5aa0cb4ab1325f686ea9b9009c64cd90c970de 100644 (file)
@@ -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());