From: Yingxin Cheng Date: Thu, 7 Mar 2024 08:20:07 +0000 (+0800) Subject: crimson/os/seastore: reuse link_phy_tree_root_node() X-Git-Tag: v20.0.0~2421^2~3 X-Git-Url: http://git.apps.os.sepia.ceph.com/?a=commitdiff_plain;h=8bca062d04e95565c13fdb365f344dceae3a4c1f;p=ceph.git crimson/os/seastore: reuse link_phy_tree_root_node() Signed-off-by: Yingxin Cheng --- diff --git a/src/crimson/os/seastore/root_block.cc b/src/crimson/os/seastore/root_block.cc index dc928e81b0fa2..5b8e0ca5d1f88 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) + ); } } }