]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commitdiff
crimson/os/seastore/btree: correct the sync search of leaf nodes to do
authorXuehan Xu <xuxuehan@qianxin.com>
Wed, 3 Jun 2026 02:09:12 +0000 (10:09 +0800)
committerXuehan Xu <xuxuehan@qianxin.com>
Sat, 6 Jun 2026 09:37:45 +0000 (17:37 +0800)
lower_bound instead of upper_bound

Signed-off-by: Xuehan Xu <xuxuehan@qianxin.com>
src/crimson/os/seastore/btree/fixed_kv_btree.h
src/crimson/os/seastore/lba/btree_lba_manager.cc

index c31b713ecff6e3939ef2ac4fd286c5165c29f29c..8e65e9e4e68ecd459c0a11e5d97918ff7876ac1d 100644 (file)
@@ -577,7 +577,7 @@ public:
         iter.leaf.node = child;
       }
     }
-    auto it = iter.leaf.node->upper_bound(addr);
+    auto it = iter.leaf.node->lower_bound(addr);
     iter.leaf.pos = it->get_offset();
     SUBTRACET(
       seastore_fixedkv_tree,
index f6e415c0e82dc74b7db86c1d3f2c5093bd2a679b..8dcb294be44b3748ad509d28127c29b5fae9138f 100644 (file)
@@ -1139,6 +1139,7 @@ void BtreeLBAManager::update_paddr_sync(
   auto iter = btree.lower_bound_sync(c, laddr);
   assert(iter.get_leaf_node()->is_pending());
   auto cursor = iter.get_cursor(c);
+  assert(cursor->get_laddr() == laddr);
   btree.update(
     c,
     std::move(iter),