From 715152f49bc87eb3f0ca43bcea81cf0b205b15bc Mon Sep 17 00:00:00 2001 From: Xuehan Xu Date: Tue, 17 Jun 2025 15:54:09 +0800 Subject: [PATCH] crimson/os/seastore/btree: fix indention of handle_merge Signed-off-by: Xuehan Xu --- .../os/seastore/btree/fixed_kv_btree.h | 122 +++++++++--------- 1 file changed, 61 insertions(+), 61 deletions(-) diff --git a/src/crimson/os/seastore/btree/fixed_kv_btree.h b/src/crimson/os/seastore/btree/fixed_kv_btree.h index f69e15b7fdc..02de8c57a6a 100644 --- a/src/crimson/os/seastore/btree/fixed_kv_btree.h +++ b/src/crimson/os/seastore/btree/fixed_kv_btree.h @@ -1894,72 +1894,72 @@ private: return seastar::do_with( depth_t{1}, [FNAME, this, c, &iter](auto &to_merge) { - return trans_intr::repeat( - [FNAME, this, c, &iter, &to_merge] { + return trans_intr::repeat( + [FNAME, this, c, &iter, &to_merge] { + SUBTRACET( + seastore_fixedkv_tree, + "merging depth {}", + c.trans, + to_merge); + auto &parent_pos = iter.get_internal(to_merge + 1); + auto merge_fut = handle_merge_iertr::now(); + if (to_merge > 1) { + auto &pos = iter.get_internal(to_merge); + merge_fut = merge_level(c, to_merge, parent_pos, pos); + } else { + auto &pos = iter.leaf; + merge_fut = merge_level(c, to_merge, parent_pos, pos); + } + + return merge_fut.si_then([FNAME, this, c, &iter, &to_merge] { + ++to_merge; + auto &pos = iter.get_internal(to_merge); + if (to_merge == iter.get_depth()) { + if (pos.node->get_size() == 1) { + SUBTRACET(seastore_fixedkv_tree, "collapsing root", c.trans); + c.cache.retire_extent(c.trans, pos.node); + assert(pos.pos == 0); + auto node_iter = pos.get_iter(); + iter.internal.pop_back(); + get_tree_stats(c.trans).depth = iter.get_depth(); + get_tree_stats(c.trans).extents_num_delta--; + + root_block = c.cache.duplicate_for_write( + c.trans, root_block + )->template cast(); + get_root().set_location( + node_iter->get_val().maybe_relative_to(pos.node->get_paddr())); + get_root().set_depth(iter.get_depth()); + if (iter.get_depth() > 1) { + auto root_node = iter.get_internal(iter.get_depth()).node; + set_root_node(root_node); + } else { + set_root_node(iter.leaf.node); + } + } else { + SUBTRACET(seastore_fixedkv_tree, "no need to collapse root", c.trans); + } + return seastar::stop_iteration::yes; + } else if (pos.node->below_min_capacity()) { SUBTRACET( seastore_fixedkv_tree, - "merging depth {}", + "continuing, next node {} depth {} at min", c.trans, + *pos.node, to_merge); - auto &parent_pos = iter.get_internal(to_merge + 1); - auto merge_fut = handle_merge_iertr::now(); - if (to_merge > 1) { - auto &pos = iter.get_internal(to_merge); - merge_fut = merge_level(c, to_merge, parent_pos, pos); - } else { - auto &pos = iter.leaf; - merge_fut = merge_level(c, to_merge, parent_pos, pos); - } - - return merge_fut.si_then([FNAME, this, c, &iter, &to_merge] { - ++to_merge; - auto &pos = iter.get_internal(to_merge); - if (to_merge == iter.get_depth()) { - if (pos.node->get_size() == 1) { - SUBTRACET(seastore_fixedkv_tree, "collapsing root", c.trans); - c.cache.retire_extent(c.trans, pos.node); - assert(pos.pos == 0); - auto node_iter = pos.get_iter(); - iter.internal.pop_back(); - get_tree_stats(c.trans).depth = iter.get_depth(); - get_tree_stats(c.trans).extents_num_delta--; - - root_block = c.cache.duplicate_for_write( - c.trans, root_block - )->template cast(); - get_root().set_location( - node_iter->get_val().maybe_relative_to(pos.node->get_paddr())); - get_root().set_depth(iter.get_depth()); - if (iter.get_depth() > 1) { - auto root_node = iter.get_internal(iter.get_depth()).node; - set_root_node(root_node); - } else { - set_root_node(iter.leaf.node); - } - } else { - SUBTRACET(seastore_fixedkv_tree, "no need to collapse root", c.trans); - } - return seastar::stop_iteration::yes; - } else if (pos.node->below_min_capacity()) { - SUBTRACET( - seastore_fixedkv_tree, - "continuing, next node {} depth {} at min", - c.trans, - *pos.node, - to_merge); - return seastar::stop_iteration::no; - } else { - SUBTRACET( - seastore_fixedkv_tree, - "complete, next node {} depth {} not min", - c.trans, - *pos.node, - to_merge); - return seastar::stop_iteration::yes; - } - }); - }); + return seastar::stop_iteration::no; + } else { + SUBTRACET( + seastore_fixedkv_tree, + "complete, next node {} depth {} not min", + c.trans, + *pos.node, + to_merge); + return seastar::stop_iteration::yes; + } + }); }); + }); } template