Fixes: https://tracker.ceph.com/issues/72580
Signed-off-by: Zhang Song <zhangsong02@qianxin.com>
extent->get_length(),
extent->get_type()));
} else if (is_backref_node(extent->get_type())) {
+ // The retire alloc deltas are used to identify the invalid backref extent
+ // deltas during replay when using CircularBoundedJournal, see
+ // build_paddr_seq_map in CBJournal::replay().
+ rel_delta.alloc_blk_ranges.emplace_back(
+ alloc_blk_t::create_retire(
+ extent->get_paddr(),
+ extent->get_length(),
+ extent->get_type()));
remove_backref_extent(extent->get_paddr());
} else {
ERRORT("Got unexpected extent type: {}", t, *extent);
extent_len_t len,
extent_types_t type) {
assert(is_backref_mapped_type(type) ||
+ is_backref_node(type) ||
is_retired_placeholder_type(type));
return alloc_blk_t(paddr, L_ADDR_NULL, len, type);
}