Skip to content

Commit 50cdbe3

Browse files
committed
crimson/os/seastore/seastore_types: introduce and use paddr_t::is_absolute_segmented/random_block()
Signed-off-by: Yingxin Cheng <[email protected]>
1 parent d17233f commit 50cdbe3

File tree

5 files changed

+17
-8
lines changed

5 files changed

+17
-8
lines changed

src/crimson/os/seastore/async_cleaner.cc

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1524,7 +1524,8 @@ bool SegmentCleaner::check_usage()
15241524
if (paddr.get_addr_type() == paddr_types_t::SEGMENT) {
15251525
if (is_backref_node(type)) {
15261526
assert(laddr == L_ADDR_NULL);
1527-
assert(backref_key != P_ADDR_NULL);
1527+
assert(backref_key.is_absolute_segmented()
1528+
|| backref_key == P_ADDR_MIN);
15281529
tracker->allocate(
15291530
paddr.as_seg_paddr().get_segment_id(),
15301531
paddr.as_seg_paddr().get_segment_off(),
@@ -1832,7 +1833,8 @@ bool RBMCleaner::check_usage()
18321833
if (rbm->get_device_id() == paddr.get_device_id()) {
18331834
if (is_backref_node(type)) {
18341835
assert(laddr == L_ADDR_NULL);
1835-
assert(backref_key != P_ADDR_NULL);
1836+
assert(backref_key.is_absolute_random_block()
1837+
|| backref_key == P_ADDR_MIN);
18361838
tracker.allocate(
18371839
paddr,
18381840
len);

src/crimson/os/seastore/cache.cc

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1937,8 +1937,7 @@ Cache::replay_delta(
19371937
* safetly skip these deltas because the extent must already
19381938
* have been rewritten.
19391939
*/
1940-
if (delta.paddr != P_ADDR_NULL &&
1941-
delta.paddr.get_addr_type() == paddr_types_t::SEGMENT) {
1940+
if (delta.paddr.is_absolute_segmented()) {
19421941
auto& seg_addr = delta.paddr.as_seg_paddr();
19431942
auto seg_info = get_segment_info(seg_addr.get_segment_id());
19441943
if (seg_info) {

src/crimson/os/seastore/journal/segmented_journal.cc

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -111,7 +111,7 @@ SegmentedJournal::prep_replay_segments(
111111
auto journal_tail = trimmer.get_journal_tail();
112112
auto journal_tail_paddr = journal_tail.offset;
113113
ceph_assert(journal_tail != JOURNAL_SEQ_NULL);
114-
ceph_assert(journal_tail_paddr != P_ADDR_NULL);
114+
ceph_assert(journal_tail_paddr.is_absolute_segmented());
115115
auto from = std::find_if(
116116
segments.begin(),
117117
segments.end(),

src/crimson/os/seastore/seastore_types.h

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -651,6 +651,14 @@ struct paddr_t {
651651
return get_addr_type() != paddr_types_t::RESERVED;
652652
}
653653

654+
bool is_absolute_random_block() const {
655+
return get_addr_type() == paddr_types_t::RANDOM_BLOCK;
656+
}
657+
658+
bool is_absolute_segmented() const {
659+
return get_addr_type() == paddr_types_t::SEGMENT;
660+
}
661+
654662
bool is_fake() const {
655663
return get_device_id() == DEVICE_ID_FAKE;
656664
}

src/crimson/os/seastore/transaction.h

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -184,7 +184,7 @@ class Transaction {
184184
delayed_temp_offset += ref->get_length();
185185
delayed_alloc_list.emplace_back(ref);
186186
fresh_block_stats.increment(ref->get_length());
187-
} else if (ref->get_paddr().is_absolute()) {
187+
} else if (ref->get_paddr().is_absolute_random_block()) {
188188
pre_alloc_list.emplace_back(ref);
189189
fresh_block_stats.increment(ref->get_length());
190190
} else {
@@ -237,15 +237,15 @@ class Transaction {
237237
}
238238

239239
void mark_inplace_rewrite_extent_ool(LogicalCachedExtentRef ref) {
240-
assert(ref->get_paddr().is_absolute());
240+
assert(ref->get_paddr().is_absolute_random_block());
241241
assert(!ref->is_inline());
242242
inplace_ool_block_list.push_back(ref);
243243
}
244244

245245
void add_inplace_rewrite_extent(CachedExtentRef ref) {
246246
ceph_assert(!is_weak());
247247
ceph_assert(ref);
248-
ceph_assert(ref->get_paddr().is_absolute());
248+
ceph_assert(ref->get_paddr().is_absolute_random_block());
249249
assert(ref->state == CachedExtent::extent_state_t::DIRTY);
250250
pre_inplace_rewrite_list.emplace_back(ref->cast<LogicalCachedExtent>());
251251
}

0 commit comments

Comments
 (0)