return retired_set;
}
- bool is_retired(laddr_t laddr, extent_len_t len, paddr_t paddr) {
+ bool is_retired(paddr_t paddr, extent_len_t len) {
if (retired_set.empty()) {
return false;
}
assert(iter != retired_set.begin());
--iter;
}
-
- auto lextent = (*iter)->cast<LogicalCachedExtent>();
- auto ext_laddr = lextent->get_laddr();
- return ext_laddr <= laddr &&
- ext_laddr + lextent->get_length() >= laddr + len;
+ auto retired_paddr = (*iter)->get_paddr();
+ auto retired_length = (*iter)->get_length();
+ return retired_paddr <= paddr &&
+ retired_paddr.add_offset(retired_length) >= paddr.add_offset(len);
}
bool should_record_release(paddr_t addr) {
reclaim_gen_t gen = DIRTY_GENERATION) {
LOG_PREFIX(TransactionManager::map_existing_extent);
ceph_assert(existing_paddr.is_absolute());
- assert(t.is_retired(laddr_hint, length, existing_paddr));
+ assert(t.is_retired(existing_paddr, length));
auto bp = ceph::bufferptr(buffer::create_page_aligned(length));
bp.zero();