From: Xuehan Xu Date: Wed, 28 Feb 2024 08:00:23 +0000 (+0800) Subject: crimson/os/seastore/lba_manager: extents pass to LBALeafNode::update() X-Git-Tag: v20.0.0~1896^2~8 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=4b155f3ee5ab4fbd212e117d2cd40dd78d846d3a;p=ceph.git crimson/os/seastore/lba_manager: extents pass to LBALeafNode::update() must either has a null parent tracker or point to the current leaf node Signed-off-by: Xuehan Xu --- diff --git a/src/crimson/os/seastore/lba_manager/btree/lba_btree_node.h b/src/crimson/os/seastore/lba_manager/btree/lba_btree_node.h index 3b760ff06a24e..73aa77ab0a557 100644 --- a/src/crimson/os/seastore/lba_manager/btree/lba_btree_node.h +++ b/src/crimson/os/seastore/lba_manager/btree/lba_btree_node.h @@ -194,7 +194,11 @@ struct LBALeafNode iter.get_offset(), *nextent); // child-ptr may already be correct, see LBAManager::update_mappings() - this->update_child_ptr(iter, nextent); + if (!nextent->has_parent_tracker()) { + this->update_child_ptr(iter, nextent); + } + assert(nextent->has_parent_tracker() + && nextent->get_parent_node().get() == this); } if (val.pladdr.is_paddr()) { val.pladdr = maybe_generate_relative(val.pladdr.get_paddr());