From 5e76c97175589bbeb5c723d37202266edd9cd551 Mon Sep 17 00:00:00 2001 From: Yingxin Cheng Date: Thu, 24 Mar 2022 11:12:47 +0800 Subject: [PATCH] crimson/os/seastore: cleanup SegmentCleaner::mount() Signed-off-by: Yingxin Cheng --- src/crimson/os/seastore/extent_reader.h | 10 ++++------ src/crimson/os/seastore/segment_cleaner.cc | 4 ++-- src/crimson/os/seastore/segment_cleaner.h | 2 +- src/crimson/os/seastore/transaction_manager.cc | 6 ++---- 4 files changed, 9 insertions(+), 13 deletions(-) diff --git a/src/crimson/os/seastore/extent_reader.h b/src/crimson/os/seastore/extent_reader.h index 4d77dbe6ef813..68202f6a29ab2 100644 --- a/src/crimson/os/seastore/extent_reader.h +++ b/src/crimson/os/seastore/extent_reader.h @@ -21,6 +21,10 @@ public: return segment_managers[0]->get_block_size(); } + std::vector& get_segment_managers() { + return segment_managers; + } + using read_ertr = SegmentManager::read_ertr; ExtentReader() { segment_managers.resize(DEVICE_ID_MAX, nullptr); @@ -92,10 +96,6 @@ public: private: std::vector segment_managers; - - std::vector& get_segment_managers() { - return segment_managers; - } /// read record metadata for record starting at start using read_validate_record_metadata_ertr = read_ertr; using read_validate_record_metadata_ret = @@ -120,8 +120,6 @@ private: scan_valid_records_cursor& cursor, found_record_handler_t& handler, std::size_t& budget_used); - - friend class TransactionManager; }; using ExtentReaderRef = std::unique_ptr; diff --git a/src/crimson/os/seastore/segment_cleaner.cc b/src/crimson/os/seastore/segment_cleaner.cc index 006a196c1977c..ac48a00a769f2 100644 --- a/src/crimson/os/seastore/segment_cleaner.cc +++ b/src/crimson/os/seastore/segment_cleaner.cc @@ -503,9 +503,9 @@ SegmentCleaner::gc_reclaim_space_ret SegmentCleaner::gc_reclaim_space() } SegmentCleaner::mount_ret SegmentCleaner::mount( - device_id_t pdevice_id, - std::vector& sms) + device_id_t pdevice_id) { + auto& sms = scanner->get_segment_managers(); logger().debug( "SegmentCleaner::mount: {} segment managers", sms.size()); init_complete = false; diff --git a/src/crimson/os/seastore/segment_cleaner.h b/src/crimson/os/seastore/segment_cleaner.h index 2cdc636c2a723..afb400c84cd0a 100644 --- a/src/crimson/os/seastore/segment_cleaner.h +++ b/src/crimson/os/seastore/segment_cleaner.h @@ -736,7 +736,7 @@ public: using mount_ertr = crimson::errorator< crimson::ct_error::input_output_error>; using mount_ret = mount_ertr::future<>; - mount_ret mount(device_id_t pdevice_id, std::vector& sms); + mount_ret mount(device_id_t pdevice_id); segment_id_t get_segment( device_id_t id, segment_seq_t seq, segment_type_t type) final; diff --git a/src/crimson/os/seastore/transaction_manager.cc b/src/crimson/os/seastore/transaction_manager.cc index 237e90966d24a..a40f6632b6b24 100644 --- a/src/crimson/os/seastore/transaction_manager.cc +++ b/src/crimson/os/seastore/transaction_manager.cc @@ -47,8 +47,7 @@ TransactionManager::mkfs_ertr::future<> TransactionManager::mkfs() LOG_PREFIX(TransactionManager::mkfs); INFO("enter"); return segment_cleaner->mount( - segment_manager.get_device_id(), - scanner.get_segment_managers() + segment_manager.get_device_id() ).safe_then([this] { return journal->open_for_write(); }).safe_then([this](auto addr) { @@ -88,8 +87,7 @@ TransactionManager::mount_ertr::future<> TransactionManager::mount() INFO("enter"); cache->init(); return segment_cleaner->mount( - segment_manager.get_device_id(), - scanner.get_segment_managers() + segment_manager.get_device_id() ).safe_then([this] { return journal->replay( [this](const auto &offsets, const auto &e, auto last_modified) { -- 2.39.5