From f2b8df3c51f7d5b418f16dc9d19bf6e923b52e90 Mon Sep 17 00:00:00 2001 From: Yingxin Cheng Date: Wed, 20 Jul 2022 13:51:59 +0800 Subject: [PATCH] crimson/os/seastore/backref: decouple SegmentManagerGroup Backref tree is not specific to segments. Signed-off-by: Yingxin Cheng --- src/crimson/os/seastore/backref/btree_backref_manager.cc | 2 +- src/crimson/os/seastore/backref/btree_backref_manager.h | 8 ++------ src/crimson/os/seastore/backref_manager.cc | 4 +--- src/crimson/os/seastore/backref_manager.h | 1 - src/crimson/os/seastore/cache.h | 4 ++++ src/crimson/os/seastore/transaction_manager.cc | 2 +- 6 files changed, 9 insertions(+), 12 deletions(-) diff --git a/src/crimson/os/seastore/backref/btree_backref_manager.cc b/src/crimson/os/seastore/backref/btree_backref_manager.cc index 5d0d6bf788106..90ae75b14cd00 100644 --- a/src/crimson/os/seastore/backref/btree_backref_manager.cc +++ b/src/crimson/os/seastore/backref/btree_backref_manager.cc @@ -124,7 +124,7 @@ BtreeBackrefManager::new_mapping( ceph_assert( is_aligned( key.as_seg_paddr().get_segment_off(), - (uint64_t)sm_group.get_block_size())); + (uint64_t)cache.get_block_size())); struct state_t { paddr_t last_end; diff --git a/src/crimson/os/seastore/backref/btree_backref_manager.h b/src/crimson/os/seastore/backref/btree_backref_manager.h index 5bc7476373e9e..8130c806377c3 100644 --- a/src/crimson/os/seastore/backref/btree_backref_manager.h +++ b/src/crimson/os/seastore/backref/btree_backref_manager.h @@ -38,11 +38,8 @@ using BackrefBtree = FixedKVBtree< class BtreeBackrefManager : public BackrefManager { public: - BtreeBackrefManager( - SegmentManagerGroup &sm_group, - Cache &cache) - : sm_group(sm_group), - cache(cache) + BtreeBackrefManager(Cache &cache) + : cache(cache) {} mkfs_ret mkfs( @@ -119,7 +116,6 @@ public: void cache_new_backref_extent(paddr_t paddr, extent_types_t type) final; private: - SegmentManagerGroup &sm_group; Cache &cache; btree_pin_set_t pin_set; diff --git a/src/crimson/os/seastore/backref_manager.cc b/src/crimson/os/seastore/backref_manager.cc index 8e195994cdc1b..c596ee41dcaf0 100644 --- a/src/crimson/os/seastore/backref_manager.cc +++ b/src/crimson/os/seastore/backref_manager.cc @@ -8,12 +8,10 @@ namespace crimson::os::seastore { BackrefManagerRef create_backref_manager( - SegmentManagerGroup &sm_group, Cache &cache) { return BackrefManagerRef( - new backref::BtreeBackrefManager( - sm_group, cache)); + new backref::BtreeBackrefManager(cache)); } } // namespace crimson::os::seastore::backref diff --git a/src/crimson/os/seastore/backref_manager.h b/src/crimson/os/seastore/backref_manager.h index 76a08257c9755..69234506248bc 100644 --- a/src/crimson/os/seastore/backref_manager.h +++ b/src/crimson/os/seastore/backref_manager.h @@ -164,7 +164,6 @@ using BackrefManagerRef = std::unique_ptr; BackrefManagerRef create_backref_manager( - SegmentManagerGroup &sm_group, Cache &cache); } // namespace crimson::os::seastore::backref diff --git a/src/crimson/os/seastore/cache.h b/src/crimson/os/seastore/cache.h index 9d4e3528d108f..95aa6a7827d49 100644 --- a/src/crimson/os/seastore/cache.h +++ b/src/crimson/os/seastore/cache.h @@ -482,6 +482,10 @@ public: return get_extent(t, offset, length, [](T &){}); } + seastore_off_t get_block_size() const { + return epm.get_block_size(); + } + private: // This is a workaround std::move_only_function not being available, // not really worth generalizing at this time. diff --git a/src/crimson/os/seastore/transaction_manager.cc b/src/crimson/os/seastore/transaction_manager.cc index e88e80b7feec3..89f8199a888f7 100644 --- a/src/crimson/os/seastore/transaction_manager.cc +++ b/src/crimson/os/seastore/transaction_manager.cc @@ -684,7 +684,7 @@ TransactionManagerRef make_transaction_manager(tm_make_config_t config) auto cache = std::make_unique(*epm); auto lba_manager = lba_manager::create_lba_manager(*cache); auto sms = std::make_unique(); - auto backref_manager = create_backref_manager(*sms, *cache); + auto backref_manager = create_backref_manager(*cache); bool cleaner_is_detailed; AsyncCleaner::config_t cleaner_config; -- 2.39.5