From 1d280915d37b214c5040c1dd823222e99bc5a374 Mon Sep 17 00:00:00 2001 From: Samuel Just Date: Tue, 16 Sep 2025 09:48:34 -0700 Subject: [PATCH] crimson/.../transaction_manager: convert get_pin to coroutine Signed-off-by: Samuel Just --- src/crimson/os/seastore/transaction_manager.h | 33 +++++++------------ 1 file changed, 12 insertions(+), 21 deletions(-) diff --git a/src/crimson/os/seastore/transaction_manager.h b/src/crimson/os/seastore/transaction_manager.h index 8e8086c8595..73d4efd2a68 100644 --- a/src/crimson/os/seastore/transaction_manager.h +++ b/src/crimson/os/seastore/transaction_manager.h @@ -116,11 +116,9 @@ public: laddr_t offset) { LOG_PREFIX(TransactionManager::get_pin); SUBDEBUGT(seastore_tm, "{} ...", t, offset); - return lba_manager->get_mapping(t, offset, false - ).si_then([FNAME, &t](LBAMapping pin) { - SUBDEBUGT(seastore_tm, "got {}", t, pin); - return pin; - }); + auto pin = co_await lba_manager->get_mapping(t, offset, false); + SUBDEBUGT(seastore_tm, "got {}", t, pin); + co_return pin; } /** @@ -133,21 +131,17 @@ public: laddr_t laddr) { LOG_PREFIX(TransactionManager::get_containing_pin); SUBDEBUGT(seastore_tm, "{} ...", t, laddr); - return lba_manager->get_mapping(t, laddr, true - ).si_then([FNAME, &t](LBAMapping pin) { - SUBDEBUGT(seastore_tm, "got {}", t, pin); - return pin; - }); + auto pin = co_await lba_manager->get_mapping(t, laddr, true); + SUBDEBUGT(seastore_tm, "got {}", t, pin); + co_return pin; } get_pin_ret get_pin(Transaction &t, LogicalChildNode &extent) { LOG_PREFIX(TransactionManager::get_pin); SUBDEBUGT(seastore_tm, "{} ...", t, extent); - return lba_manager->get_mapping(t, extent - ).si_then([FNAME, &t](LBAMapping pin) { - SUBDEBUGT(seastore_tm, "got {}", t, pin); - return pin; - }); + auto pin = co_await lba_manager->get_mapping(t, extent); + SUBDEBUGT(seastore_tm, "got {}", t, pin); + co_return pin; } /** @@ -163,12 +157,9 @@ public: extent_len_t length) { LOG_PREFIX(TransactionManager::get_pins); SUBDEBUGT(seastore_tm, "{}~0x{:x} ...", t, offset, length); - return lba_manager->get_mappings( - t, offset, length - ).si_then([FNAME, &t](lba_mapping_list_t pins) { - SUBDEBUGT(seastore_tm, "got {} pins", t, pins.size()); - return pins; - }); + auto pins = co_await lba_manager->get_mappings(t, offset, length); + SUBDEBUGT(seastore_tm, "got {} pins", t, pins.size()); + co_return pins; } /** -- 2.47.3