]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
crimson/.../omap_btree_node_impl: pass pivot_idx for balancing
authorChanyoung Park <chaney.p@kakaoenterprise.com>
Thu, 24 Jul 2025 15:52:35 +0000 (15:52 +0000)
committerChanyoung Park <chaney.p@kakaoenterprise.com>
Sun, 10 Aug 2025 08:40:17 +0000 (08:40 +0000)
Fixes: https://tracker.ceph.com/issues/72270
Signed-off-by: Chanyoung Park <chaney.p@kakaoenterprise.com>
src/crimson/os/seastore/omap_manager/btree/omap_btree_node_impl.cc

index 7efb21f8f14195732883324f8e4babaad32b0773..2f5847d623d96b39e0083605d0ccceba5381cabc 100644 (file)
@@ -559,7 +559,7 @@ OMapInnerNode::do_balance(
   DEBUGT("balanced l {} r {} liter {} riter {}",
     oc.t, *l, *r, liter->get_key(), riter->get_key());
   return l->make_balanced(oc, r, *pivot_idx
-  ).si_then([FNAME, liter=liter, riter=riter, l=l, r=r, oc, this](auto tuple) {
+  ).si_then([FNAME, pivot_idx=*pivot_idx, liter=liter, riter=riter, l=l, r=r, oc, this](auto tuple) {
     auto [replacement_l, replacement_r, replacement_pivot] = tuple;
     replacement_l->init_range(l->get_begin(), replacement_pivot);
     replacement_r->init_range(replacement_pivot, r->get_end());
@@ -571,7 +571,7 @@ OMapInnerNode::do_balance(
       auto &rep_left = *replacement_l->template cast<OMapInnerNode>();
       auto &rep_right = *replacement_r->template cast<OMapInnerNode>();
       this->adjust_copy_src_dest_on_balance(
-       oc.t, left, right, true, rep_left, rep_right);
+       oc.t, left, right, pivot_idx, rep_left, rep_right);
     }
 
     //update operation will not cuase node overflow, so we can do it first