From 8bca062d04e95565c13fdb365f344dceae3a4c1f Mon Sep 17 00:00:00 2001 From: Yingxin Cheng Date: Thu, 7 Mar 2024 16:20:07 +0800 Subject: [PATCH] crimson/os/seastore: reuse link_phy_tree_root_node() Signed-off-by: Yingxin Cheng --- src/crimson/os/seastore/root_block.cc | 18 ++++++++++++------ 1 file changed, 12 insertions(+), 6 deletions(-) diff --git a/src/crimson/os/seastore/root_block.cc b/src/crimson/os/seastore/root_block.cc index dc928e81b0fa..5b8e0ca5d1f8 100644 --- a/src/crimson/os/seastore/root_block.cc +++ b/src/crimson/os/seastore/root_block.cc @@ -10,16 +10,22 @@ namespace crimson::os::seastore { void RootBlock::on_replace_prior(Transaction &t) { if (!lba_root_node) { auto &prior = static_cast(*get_prior_instance()); - lba_root_node = prior.lba_root_node; - if (lba_root_node) { - ((lba_manager::btree::LBANode*)lba_root_node)->root_block = this; + if (prior.lba_root_node) { + RootBlockRef this_ref = this; + link_phy_tree_root_node( + this_ref, + static_cast(prior.lba_root_node) + ); } } if (!backref_root_node) { auto &prior = static_cast(*get_prior_instance()); - backref_root_node = prior.backref_root_node; - if (backref_root_node) { - ((backref::BackrefNode*)backref_root_node)->root_block = this; + if (prior.backref_root_node) { + RootBlockRef this_ref = this; + link_phy_tree_root_node( + this_ref, + static_cast(prior.backref_root_node) + ); } } } -- 2.47.3