From 0bdadf3c2747068e14b76cfceaae5a042186f1c9 Mon Sep 17 00:00:00 2001 From: Samuel Just Date: Sat, 8 May 2021 02:42:47 +0000 Subject: [PATCH] crimson/.../lba_btree_node_impl: handle relative addr in merge Signed-off-by: Samuel Just --- .../os/seastore/lba_manager/btree/lba_btree_node_impl.cc | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/crimson/os/seastore/lba_manager/btree/lba_btree_node_impl.cc b/src/crimson/os/seastore/lba_manager/btree/lba_btree_node_impl.cc index 1e11a99fd48a6..fe03f8046fe3b 100644 --- a/src/crimson/os/seastore/lba_manager/btree/lba_btree_node_impl.cc +++ b/src/crimson/os/seastore/lba_manager/btree/lba_btree_node_impl.cc @@ -399,13 +399,14 @@ LBAInternalNode::merge_entry( auto mut_croot = c.cache.duplicate_for_write(c.trans, croot); croot = mut_croot->cast(); } + auto new_root_addr = begin()->get_val().maybe_relative_to(get_paddr()); croot->get_root().lba_root = lba_root_t{ - begin()->get_val(), + new_root_addr, get_meta().depth - 1}; logger().debug( "LBAInternalNode::merge_entry: collapsing root {} to addr {}", *this, - begin()->get_val()); + new_root_addr); c.cache.retire_extent(c.trans, this); return merge_ertr::make_ready_future(replacement); }); -- 2.39.5