From 9491e1b7e892d93233079b76a50e0c1983237776 Mon Sep 17 00:00:00 2001 From: Yingxin Cheng Date: Wed, 23 Apr 2025 17:02:54 +0800 Subject: [PATCH] crimson/os/seastore: fake paddr is only possible with UT, wrap with UNIT_TESTS_BUILT Signed-off-by: Yingxin Cheng --- src/crimson/os/seastore/cache.cc | 4 ++++ src/crimson/os/seastore/extent_placement_manager.h | 2 ++ src/crimson/os/seastore/transaction.h | 5 +++++ 3 files changed, 11 insertions(+) diff --git a/src/crimson/os/seastore/cache.cc b/src/crimson/os/seastore/cache.cc index 12681a44912a8..43715f34c1482 100644 --- a/src/crimson/os/seastore/cache.cc +++ b/src/crimson/os/seastore/cache.cc @@ -1408,7 +1408,11 @@ record_t Cache::prepare_record( fresh_stat.increment(i->get_length()); get_by_ext(efforts.fresh_inline_by_ext, i->get_type()).increment(i->get_length()); +#ifdef UNIT_TESTS_BUILT assert(i->is_inline() || i->get_paddr().is_fake()); +#else + assert(i->is_inline()); +#endif bufferlist bl; i->prepare_write(); diff --git a/src/crimson/os/seastore/extent_placement_manager.h b/src/crimson/os/seastore/extent_placement_manager.h index 4ff9729c5f440..709c46d968c68 100644 --- a/src/crimson/os/seastore/extent_placement_manager.h +++ b/src/crimson/os/seastore/extent_placement_manager.h @@ -558,9 +558,11 @@ public: bool get_checksum_needed(paddr_t addr) { // checksum offloading only for blocks physically stored in the device +#ifdef UNIT_TESTS_BUILT if (addr.is_fake()) { return true; } +#endif assert(addr.is_absolute()); return !devices_by_id[addr.get_device_id()]->is_end_to_end_data_protection(); } diff --git a/src/crimson/os/seastore/transaction.h b/src/crimson/os/seastore/transaction.h index 9de630daa90a0..84320e5bb33a4 100644 --- a/src/crimson/os/seastore/transaction.h +++ b/src/crimson/os/seastore/transaction.h @@ -188,11 +188,16 @@ public: pre_alloc_list.emplace_back(ref); fresh_block_stats.increment(ref->get_length()); } else { +#ifdef UNIT_TESTS_BUILT if (likely(ref->get_paddr() == make_record_relative_paddr(0))) { ref->set_paddr(make_record_relative_paddr(offset)); } else { ceph_assert(ref->get_paddr().is_fake()); } +#else + assert(ref->get_paddr() == make_record_relative_paddr(0)); + ref->set_paddr(make_record_relative_paddr(offset)); +#endif offset += ref->get_length(); inline_block_list.push_back(ref); fresh_block_stats.increment(ref->get_length()); -- 2.39.5