From: Yingxin Cheng Date: Mon, 25 Nov 2024 06:41:54 +0000 (+0800) Subject: crimson/os/seastore/transaction_manager: fix get_extents_if_live X-Git-Tag: v20.0.0~617^2~1 X-Git-Url: http://git.apps.os.sepia.ceph.com/?a=commitdiff_plain;h=0732a3d39a05d0d4802853f062fd25f8a8e53135;p=ceph.git crimson/os/seastore/transaction_manager: fix get_extents_if_live It should not assume the paddr type from get_mappings is SEGMENT. Signed-off-by: Yingxin Cheng --- diff --git a/src/crimson/os/seastore/transaction_manager.cc b/src/crimson/os/seastore/transaction_manager.cc index 6e6c8278a3ed1..45fb54f2726c2 100644 --- a/src/crimson/os/seastore/transaction_manager.cc +++ b/src/crimson/os/seastore/transaction_manager.cc @@ -757,6 +757,9 @@ TransactionManager::get_extents_if_live( LBAMappingRef& pin) -> Cache::get_extent_iertr::future<> { auto pin_paddr = pin->get_val(); + if (pin_paddr.get_addr_type() != paddr_types_t::SEGMENT) { + return seastar::now(); + } auto &pin_seg_paddr = pin_paddr.as_seg_paddr(); auto pin_paddr_seg_id = pin_seg_paddr.get_segment_id(); // auto pin_len = pin->get_length();