From: Samuel Just Date: Thu, 16 Oct 2025 00:54:26 +0000 (+0000) Subject: crimson/.../transaction_manager: convert clone_pin to coroutine X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=86fb4435c5c42ebf1b8c7111aa4fa30eac07bdfa;p=ceph-ci.git crimson/.../transaction_manager: convert clone_pin to coroutine Signed-off-by: Samuel Just --- diff --git a/src/crimson/os/seastore/transaction_manager.h b/src/crimson/os/seastore/transaction_manager.h index 3ebc12b1c83..98437b593a0 100644 --- a/src/crimson/os/seastore/transaction_manager.h +++ b/src/crimson/os/seastore/transaction_manager.h @@ -566,30 +566,19 @@ public: LOG_PREFIX(TransactionManager::clone_pin); SUBDEBUGT(seastore_tm, "{} clone to hint {} ... pos={}, updateref={}", t, mapping, hint, pos, updateref); - return seastar::do_with( + pos = co_await pos.refresh(); + mapping = co_await mapping.refresh(); + auto ret = co_await lba_manager->clone_mapping( + t, std::move(pos), std::move(mapping), - [offset, len, FNAME, this, &t, hint, updateref](auto &pos, auto &mapping) { - return pos.refresh( - ).si_then([&pos, &mapping](auto m) { - pos = std::move(m); - return mapping.refresh(); - }).si_then([offset, len, FNAME, this, &pos, - &t, hint, updateref](auto mapping) { - return lba_manager->clone_mapping( - t, - std::move(pos), - std::move(mapping), - hint, - offset, - len, - updateref - ).si_then([FNAME, &t](auto ret) { - SUBDEBUGT(seastore_tm, "cloned as {}", t, ret.cloned_mapping); - return ret; - }); - }); - }); + hint, + offset, + len, + updateref + ); + SUBDEBUGT(seastore_tm, "cloned as {}", t, ret.cloned_mapping); + co_return ret; } struct clone_range_ret_t {