From: Xuehan Xu Date: Tue, 22 Jul 2025 09:52:40 +0000 (+0800) Subject: crimson/os/seastore/logical_child_node: LogicalChildNode should respond X-Git-Tag: testing/wip-vshankar-testing-20250805.100115-debug~42^2 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=aec2c13b2bc0acf8ce177df0ef4deef804831dc3;p=ceph-ci.git crimson/os/seastore/logical_child_node: LogicalChildNode should respond to the invalidation event Although this is not causing any damage for now, it's violating the invariant that invalid linked child nodes mustn't have parents. Signed-off-by: Xuehan Xu --- diff --git a/src/crimson/os/seastore/logical_child_node.h b/src/crimson/os/seastore/logical_child_node.h index 0394a88bda8..3b2786f1eb2 100644 --- a/src/crimson/os/seastore/logical_child_node.h +++ b/src/crimson/os/seastore/logical_child_node.h @@ -20,6 +20,13 @@ public: template LogicalChildNode(T&&... t) : LogicalCachedExtent(std::forward(t)...) {} + virtual void lcn_on_invalidated(Transaction &t) {} + + void on_invalidated(Transaction &t) final { + this->lba_child_node_t::on_invalidated(); + lcn_on_invalidated(t); + } + virtual ~LogicalChildNode() { if (this->is_stable()) { lba_child_node_t::destroy(); diff --git a/src/crimson/os/seastore/omap_manager/btree/omap_btree_node_impl.h b/src/crimson/os/seastore/omap_manager/btree/omap_btree_node_impl.h index 414147d8e89..6fce9584f46 100644 --- a/src/crimson/os/seastore/omap_manager/btree/omap_btree_node_impl.h +++ b/src/crimson/os/seastore/omap_manager/btree/omap_btree_node_impl.h @@ -120,7 +120,7 @@ struct OMapInnerNode } } - void on_invalidated(Transaction &t) final { + void lcn_on_invalidated(Transaction &t) final { this->child_node_t::on_invalidated(); } @@ -329,7 +329,7 @@ struct OMapLeafNode } } - void on_invalidated(Transaction &t) final { + void lcn_on_invalidated(Transaction &t) final { this->child_node_t::on_invalidated(); }