]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
seastore: use config_t instead of parameter in make_transaction_manager
authormyoungwon oh <ohmyoungwon@gmail.com>
Fri, 6 May 2022 05:13:23 +0000 (14:13 +0900)
committermyoungwon oh <ohmyoungwon@gmail.com>
Thu, 19 May 2022 00:47:27 +0000 (09:47 +0900)
Signed-off-by: Myoungwon Oh <myoungwon.oh@samsung.com>
src/crimson/os/seastore/seastore.cc
src/crimson/os/seastore/transaction_manager.cc
src/crimson/os/seastore/transaction_manager.h
src/crimson/tools/store_nbd/tm_driver.cc
src/test/crimson/seastore/transaction_manager_test_state.h

index 5f007689791edaa0f3a0a68d90fe84e158bf92d7..157c3fadbaa806a965a66e00dd5e1f015a47ee78 100644 (file)
@@ -1692,7 +1692,8 @@ seastar::future<std::unique_ptr<SeaStore>> make_seastore(
   return Device::make_device(
     device
   ).then([&device](DeviceRef device_obj) {
-    auto tm = make_transaction_manager(false /* detailed */);
+    tm_make_config_t config {false, false};
+    auto tm = make_transaction_manager(config);
     auto cm = std::make_unique<collection_manager::FlatCollectionManager>(*tm);
     return std::make_unique<SeaStore>(
       device,
index 7812e915c140707cf58318a766b9c9249667dbf6..5ff7d9afe5b2a3ff5e06aac5df77240eeb9f3bf5 100644 (file)
@@ -634,7 +634,7 @@ TransactionManager::get_extent_if_live_ret TransactionManager::get_extent_if_liv
 
 TransactionManager::~TransactionManager() {}
 
-TransactionManagerRef make_transaction_manager(bool detailed, bool cbjournal)
+TransactionManagerRef make_transaction_manager(tm_make_config_t config)
 {
   auto epm = std::make_unique<ExtentPlacementManager>();
   auto cache = std::make_unique<Cache>(*epm);
@@ -646,9 +646,9 @@ TransactionManagerRef make_transaction_manager(bool detailed, bool cbjournal)
     std::move(sms),
     *backref_manager,
     *cache,
-    detailed);
+    config.detailed);
   JournalRef journal;
-  if (!cbjournal) {
+  if (!config.cbjournal) {
     journal = journal::make_segmented(*segment_cleaner);
   } else {
     journal = journal::make_circularbounded(
index 0e5f3b8ac673099c98c30b200a0e6cc418033201..efdee90c66922540817956064318cd6368345475 100644 (file)
@@ -591,6 +591,16 @@ public:
 };
 using TransactionManagerRef = std::unique_ptr<TransactionManager>;
 
-TransactionManagerRef make_transaction_manager(bool detailed, bool cbjournal = false);
+struct tm_make_config_t {
+  bool detailed = true;
+  bool cbjournal = false;
+  static tm_make_config_t get_default() {
+    return tm_make_config_t {
+      true,
+      false
+    };
+  }
+};
 
+TransactionManagerRef make_transaction_manager(tm_make_config_t config);
 }
index 408b3ed70152715eb86224ac29e8517ad23a5920..549ef8e657b93705ff0d658a35b82e02e311f443 100644 (file)
@@ -131,7 +131,8 @@ seastar::future<bufferlist> TMDriver::read(
 
 void TMDriver::init()
 {
-  tm = make_transaction_manager(false /* detailed */);
+  tm_make_config_t config {false, false};
+  tm = make_transaction_manager(config);
   tm->add_device(device.get(), true);
 }
 
index 072bb8eaecf4dd4a5bf3e4300a9533a540f8519d..96456571fada9cae34f70573726fe86f56233941 100644 (file)
@@ -129,7 +129,7 @@ protected:
 };
 
 auto get_seastore(SeaStore::MDStoreRef mdstore, SegmentManagerRef sm) {
-  auto tm = make_transaction_manager(true);
+  auto tm = make_transaction_manager(tm_make_config_t::get_default());
   auto cm = std::make_unique<collection_manager::FlatCollectionManager>(*tm);
   return std::make_unique<SeaStore>(
     "",
@@ -154,8 +154,9 @@ protected:
   TMTestState(std::size_t num_devices) : EphemeralTestState(num_devices) {}
 
   virtual void _init() override {
-    tm = make_transaction_manager(true,
-      j_type == journal_type::SEGMENT_JOURNAL ? false : true);
+    tm_make_config_t config;
+    config.cbjournal = j_type == journal_type::SEGMENT_JOURNAL ? false : true;
+    tm = make_transaction_manager(config);
     tm->add_device(segment_manager.get(), true);
     if (j_type == journal_type::CIRCULARBOUNDED_JOURNAL) {
       tm->add_device(rb_device.get(), false);