From c8b81fa877622c2c9e41fc182bc6d1a271fc6960 Mon Sep 17 00:00:00 2001 From: Xuehan Xu Date: Thu, 29 Feb 2024 14:06:35 +0800 Subject: [PATCH] crimson/os/seastore/btree: misc consolidations Signed-off-by: Xuehan Xu (cherry picked from commit 72d721ad72d15296b069752985f12e173f9690da) --- src/crimson/os/seastore/btree/fixed_kv_btree.h | 9 +++++++++ .../os/seastore/lba_manager/btree/lba_btree_node.h | 2 ++ 2 files changed, 11 insertions(+) diff --git a/src/crimson/os/seastore/btree/fixed_kv_btree.h b/src/crimson/os/seastore/btree/fixed_kv_btree.h index db6672c74c178..dad5a2e438aa5 100644 --- a/src/crimson/os/seastore/btree/fixed_kv_btree.h +++ b/src/crimson/os/seastore/btree/fixed_kv_btree.h @@ -592,6 +592,15 @@ public: : true); } } + } else if (child == get_reserved_ptr()) { + if constexpr( + !std::is_base_of_v) { + assert(i->get_val().pladdr.is_paddr()); + assert(i->get_val().pladdr.get_paddr() == P_ADDR_ZERO); + } else { + ceph_abort(); + } } } else { ceph_abort("impossible"); 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 73aa77ab0a557..c5da860e24ff8 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 @@ -171,6 +171,8 @@ struct LBALeafNode for (auto i : *this) { auto child = (LogicalCachedExtent*)this->children[i.get_offset()]; + // Children may not be marked as stable yet, + // the specific order is undefined in the transaction prepare record phase. if (is_valid_child_ptr(child) && child->get_laddr() != i.get_key()) { SUBERROR(seastore_fixedkv_tree, "stable child not valid: child {}, key {}", -- 2.39.5