From 0732a3d39a05d0d4802853f062fd25f8a8e53135 Mon Sep 17 00:00:00 2001 From: Yingxin Cheng Date: Mon, 25 Nov 2024 14:41:54 +0800 Subject: [PATCH] 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 --- src/crimson/os/seastore/transaction_manager.cc | 3 +++ 1 file changed, 3 insertions(+) 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(); -- 2.39.5