From e90021257a778bbd6d5d5cb0ff19b3e40dc85590 Mon Sep 17 00:00:00 2001 From: Xuehan Xu Date: Wed, 8 May 2024 11:14:33 +0800 Subject: [PATCH] crimson/os/seastore/lba_manager: clean up LBAManager::decref_extent() interface Signed-off-by: Xuehan Xu (cherry picked from commit 502d922bdd45b6177080a6da8466420c8de563ec) --- src/crimson/os/seastore/lba_manager.h | 3 +-- .../os/seastore/lba_manager/btree/btree_lba_manager.h | 5 ++--- src/crimson/os/seastore/transaction_manager.cc | 7 +++---- src/crimson/os/seastore/transaction_manager.h | 5 ++--- src/test/crimson/seastore/test_btree_lba_manager.cc | 3 +-- 5 files changed, 9 insertions(+), 14 deletions(-) diff --git a/src/crimson/os/seastore/lba_manager.h b/src/crimson/os/seastore/lba_manager.h index 7467a36f99cbf..8ff9406f814bb 100644 --- a/src/crimson/os/seastore/lba_manager.h +++ b/src/crimson/os/seastore/lba_manager.h @@ -124,8 +124,7 @@ public: */ virtual ref_ret decref_extent( Transaction &t, - laddr_t addr, - bool cascade_remove) = 0; + laddr_t addr) = 0; /** * Increments ref count on extent diff --git a/src/crimson/os/seastore/lba_manager/btree/btree_lba_manager.h b/src/crimson/os/seastore/lba_manager/btree/btree_lba_manager.h index 54d28195000a1..70e6311881272 100644 --- a/src/crimson/os/seastore/lba_manager/btree/btree_lba_manager.h +++ b/src/crimson/os/seastore/lba_manager/btree/btree_lba_manager.h @@ -334,9 +334,8 @@ public: ref_ret decref_extent( Transaction &t, - laddr_t addr, - bool cascade_remove) final { - return update_refcount(t, addr, -1, cascade_remove + laddr_t addr) final { + return update_refcount(t, addr, -1, true ).si_then([](auto res) { return std::move(res.ref_update_res); }); diff --git a/src/crimson/os/seastore/transaction_manager.cc b/src/crimson/os/seastore/transaction_manager.cc index ed52b022f72b9..3c0e7aa9dc168 100644 --- a/src/crimson/os/seastore/transaction_manager.cc +++ b/src/crimson/os/seastore/transaction_manager.cc @@ -221,7 +221,7 @@ TransactionManager::ref_ret TransactionManager::remove( { LOG_PREFIX(TransactionManager::remove); TRACET("{}", t, *ref); - return lba_manager->decref_extent(t, ref->get_laddr(), true + return lba_manager->decref_extent(t, ref->get_laddr() ).si_then([this, FNAME, &t, ref](auto result) { DEBUGT("extent refcount is decremented to {} -- {}", t, result.refcount, *ref); @@ -234,12 +234,11 @@ TransactionManager::ref_ret TransactionManager::remove( TransactionManager::ref_ret TransactionManager::_dec_ref( Transaction &t, - laddr_t offset, - bool cascade_remove) + laddr_t offset) { LOG_PREFIX(TransactionManager::_dec_ref); TRACET("{}", t, offset); - return lba_manager->decref_extent(t, offset, cascade_remove + return lba_manager->decref_extent(t, offset ).si_then([this, FNAME, offset, &t](auto result) -> ref_ret { DEBUGT("extent refcount is decremented to {} -- {}~{}, {}", t, result.refcount, offset, result.length, result.addr); diff --git a/src/crimson/os/seastore/transaction_manager.h b/src/crimson/os/seastore/transaction_manager.h index 64854b068b19b..c8f1858041a01 100644 --- a/src/crimson/os/seastore/transaction_manager.h +++ b/src/crimson/os/seastore/transaction_manager.h @@ -283,7 +283,7 @@ public: ref_ret remove( Transaction &t, laddr_t offset) { - return _dec_ref(t, offset, true); + return _dec_ref(t, offset); } /// remove refcount for list of offset @@ -803,8 +803,7 @@ private: /// Remove refcount for offset ref_ret _dec_ref( Transaction &t, - laddr_t offset, - bool cascade_remove); + laddr_t offset); using update_lba_mappings_ret = LBAManager::update_mappings_ret; update_lba_mappings_ret update_lba_mappings( diff --git a/src/test/crimson/seastore/test_btree_lba_manager.cc b/src/test/crimson/seastore/test_btree_lba_manager.cc index 977b8c3865069..64c12783ecdc9 100644 --- a/src/test/crimson/seastore/test_btree_lba_manager.cc +++ b/src/test/crimson/seastore/test_btree_lba_manager.cc @@ -567,8 +567,7 @@ struct btree_lba_manager_test : btree_test_base { [=, this](auto &t) { return lba_manager->decref_extent( t, - target->first, - true + target->first ).si_then([this, &t, target](auto result) { EXPECT_EQ(result.refcount, target->second.refcount); if (result.refcount == 0) { -- 2.39.5