Signed-off-by: Xuehan Xu <xuxuehan@qianxin.com>
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: {}~{}",
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;