if (paddr.get_addr_type() == paddr_types_t::SEGMENT) {
if (is_backref_node(type)) {
assert(laddr == L_ADDR_NULL);
- assert(backref_key != P_ADDR_NULL);
+ assert(backref_key.is_absolute_segmented()
+ || backref_key == P_ADDR_MIN);
tracker->allocate(
paddr.as_seg_paddr().get_segment_id(),
paddr.as_seg_paddr().get_segment_off(),
if (rbm->get_device_id() == paddr.get_device_id()) {
if (is_backref_node(type)) {
assert(laddr == L_ADDR_NULL);
- assert(backref_key != P_ADDR_NULL);
+ assert(backref_key.is_absolute_random_block()
+ || backref_key == P_ADDR_MIN);
tracker.allocate(
paddr,
len);
* safetly skip these deltas because the extent must already
* have been rewritten.
*/
- if (delta.paddr != P_ADDR_NULL &&
- delta.paddr.get_addr_type() == paddr_types_t::SEGMENT) {
+ if (delta.paddr.is_absolute_segmented()) {
auto& seg_addr = delta.paddr.as_seg_paddr();
auto seg_info = get_segment_info(seg_addr.get_segment_id());
if (seg_info) {
auto journal_tail = trimmer.get_journal_tail();
auto journal_tail_paddr = journal_tail.offset;
ceph_assert(journal_tail != JOURNAL_SEQ_NULL);
- ceph_assert(journal_tail_paddr != P_ADDR_NULL);
+ ceph_assert(journal_tail_paddr.is_absolute_segmented());
auto from = std::find_if(
segments.begin(),
segments.end(),
return get_addr_type() != paddr_types_t::RESERVED;
}
+ bool is_absolute_random_block() const {
+ return get_addr_type() == paddr_types_t::RANDOM_BLOCK;
+ }
+
+ bool is_absolute_segmented() const {
+ return get_addr_type() == paddr_types_t::SEGMENT;
+ }
+
bool is_fake() const {
return get_device_id() == DEVICE_ID_FAKE;
}
delayed_temp_offset += ref->get_length();
delayed_alloc_list.emplace_back(ref);
fresh_block_stats.increment(ref->get_length());
- } else if (ref->get_paddr().is_absolute()) {
+ } else if (ref->get_paddr().is_absolute_random_block()) {
pre_alloc_list.emplace_back(ref);
fresh_block_stats.increment(ref->get_length());
} else {
}
void mark_inplace_rewrite_extent_ool(LogicalCachedExtentRef ref) {
- assert(ref->get_paddr().is_absolute());
+ assert(ref->get_paddr().is_absolute_random_block());
assert(!ref->is_inline());
inplace_ool_block_list.push_back(ref);
}
void add_inplace_rewrite_extent(CachedExtentRef ref) {
ceph_assert(!is_weak());
ceph_assert(ref);
- ceph_assert(ref->get_paddr().is_absolute());
+ ceph_assert(ref->get_paddr().is_absolute_random_block());
assert(ref->state == CachedExtent::extent_state_t::DIRTY);
pre_inplace_rewrite_list.emplace_back(ref->cast<LogicalCachedExtent>());
}