crimson/os/seastore/lba: add more rigorous assertions

Signed-off-by: Xuehan Xu <xuxuehan@qianxin.com>
This commit is contained in:
Xuehan Xu 2026-06-17 19:21:06 +08:00
parent f18fe72baa
commit b899ade928
2 changed files with 6 additions and 2 deletions

View File

@ -357,7 +357,11 @@ struct LBALeafNode
it++;
continue;
} else {
assert(child->_is_exist_clean() || child->_is_exist_mutation_pending());
assert(child->_is_exist_clean() ||
child->_is_exist_mutation_pending() ||
// a pending child might have been invalidated and
// its corresponding mapping has not been removed
!child->_is_valid());
}
}
SUBTRACET(seastore_lba, "examing v2: {}~{}, v1: {}~{}",

View File

@ -215,9 +215,9 @@ public:
virtual bool _is_mutable() const = 0;
virtual bool _is_exist_clean() const = 0;
virtual bool _is_exist_mutation_pending() const = 0;
virtual bool _is_valid() const = 0;
protected:
parent_tracker_ref<ParentT> parent_tracker;
virtual bool _is_valid() const = 0;
virtual bool _is_stable() const = 0;
template <typename, typename, typename>
friend class ParentNode;