For the purpose of higher space reclaim perf, we load backref extents by
parallelly invoking Cache::get_extent_by_type, which means loaded backref
extents won't be initialized
Signed-off-by: Xuehan Xu <xxhdx1985126@gmail.com>
offset,
*ret);
// This can only happen during init_cached_extent
+ // or when backref extent being rewritten by gc space reclaiming
if (c.pins && !ret->is_pending() && !ret->pin.is_linked()) {
- assert(ret->is_dirty());
+ assert(ret->is_dirty()
+ || (is_backref_node(ret->get_type())
+ && ret->is_clean()));
init_internal(*ret);
}
auto meta = ret->get_meta();
offset,
*ret);
// This can only happen during init_cached_extent
+ // or when backref extent being rewritten by gc space reclaiming
if (c.pins && !ret->is_pending() && !ret->pin.is_linked()) {
- assert(ret->is_dirty());
+ assert(ret->is_dirty()
+ || (is_backref_node(ret->get_type())
+ && ret->is_clean()));
init_leaf(*ret);
}
auto meta = ret->get_meta();