From b3be1a0a8f3e4b917c4d21f94dabc9c0992a7afb Mon Sep 17 00:00:00 2001 From: Zhang Song Date: Wed, 3 Apr 2024 16:01:59 +0800 Subject: [PATCH] crimson/common/interruptible_future: add discard_result Signed-off-by: Zhang Song (cherry picked from commit 870441bb0c02992923ac6e0b6373b6d3770b470b) --- src/crimson/common/interruptible_future.h | 3 +++ src/crimson/os/seastore/object_data_handler.cc | 3 +-- .../os/seastore/omap_manager/btree/omap_btree_node_impl.cc | 2 +- src/crimson/tools/store_nbd/tm_driver.cc | 2 +- src/test/crimson/seastore/test_seastore_cache.cc | 2 +- 5 files changed, 7 insertions(+), 5 deletions(-) diff --git a/src/crimson/common/interruptible_future.h b/src/crimson/common/interruptible_future.h index dbda2720ce0..27467f23962 100644 --- a/src/crimson/common/interruptible_future.h +++ b/src/crimson/common/interruptible_future.h @@ -801,6 +801,9 @@ public: return safe_then_interruptible(std::forward(args)...); } + auto discard_result() noexcept { + return si_then([](auto &&) {}); + } template && interruptible, int> = 0> diff --git a/src/crimson/os/seastore/object_data_handler.cc b/src/crimson/os/seastore/object_data_handler.cc index 6b1fb45b1ae..d741fd5c451 100644 --- a/src/crimson/os/seastore/object_data_handler.cc +++ b/src/crimson/os/seastore/object_data_handler.cc @@ -499,8 +499,7 @@ ObjectDataHandler::write_ret do_removals( return ctx.tm.remove( ctx.t, pin->get_key() - ).si_then( - [](auto){}, + ).discard_result().handle_error_interruptible( ObjectDataHandler::write_iertr::pass_further{}, crimson::ct_error::assert_all{ "object_data_handler::do_removals invalid error" diff --git a/src/crimson/os/seastore/omap_manager/btree/omap_btree_node_impl.cc b/src/crimson/os/seastore/omap_manager/btree/omap_btree_node_impl.cc index 307f82c05e3..8d06accef1e 100644 --- a/src/crimson/os/seastore/omap_manager/btree/omap_btree_node_impl.cc +++ b/src/crimson/os/seastore/omap_manager/btree/omap_btree_node_impl.cc @@ -41,7 +41,7 @@ dec_ref_ret dec_ref(omap_context_t oc, T&& addr) { crimson::ct_error::assert_all{ "Invalid error in OMapInnerNode helper dec_ref" } - ).si_then([](auto &&e) {}); + ).discard_result(); } /** diff --git a/src/crimson/tools/store_nbd/tm_driver.cc b/src/crimson/tools/store_nbd/tm_driver.cc index 01658c4f063..967a46ccd45 100644 --- a/src/crimson/tools/store_nbd/tm_driver.cc +++ b/src/crimson/tools/store_nbd/tm_driver.cc @@ -28,7 +28,7 @@ seastar::future<> TMDriver::write( [this, offset, &ptr](auto& t) { return tm->remove(t, offset - ).si_then([](auto){}).handle_error_interruptible( + ).discard_result().handle_error_interruptible( crimson::ct_error::enoent::handle([](auto) { return seastar::now(); }), crimson::ct_error::pass_further_all{} ).si_then([this, offset, &t, &ptr] { diff --git a/src/test/crimson/seastore/test_seastore_cache.cc b/src/test/crimson/seastore/test_seastore_cache.cc index 2b0b546b159..b099ddb684a 100644 --- a/src/test/crimson/seastore/test_seastore_cache.cc +++ b/src/test/crimson/seastore/test_seastore_cache.cc @@ -100,7 +100,7 @@ struct cache_test_t : public seastar_test_suite_t { return cache->mkfs(t); }).safe_then([this, &ref_t] { return submit_transaction(std::move(ref_t) - ).then([](auto p) {}); + ).discard_result(); }); }); }).handle_error( -- 2.39.5