]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
crimson/os/seastore/cbj: merge mkfs() in cbj into open_for_mkfs()
authormyoungwon oh <ohmyoungwon@gmail.com>
Wed, 19 Oct 2022 08:13:59 +0000 (17:13 +0900)
committermyoungwon oh <ohmyoungwon@gmail.com>
Wed, 19 Oct 2022 08:13:59 +0000 (17:13 +0900)
Signed-off-by: Myoungwon Oh <myoungwon.oh@samsung.com>
src/crimson/os/seastore/journal/circular_bounded_journal.cc
src/crimson/os/seastore/journal/circular_bounded_journal.h
src/test/crimson/seastore/test_cbjournal.cc
src/test/crimson/seastore/transaction_manager_test_state.h

index 2d952539dfacfc9305fd92e573fb650a00a901ae..ed1d3aaa69a182f0eaf1da472262963bfea9194d 100644 (file)
@@ -28,9 +28,27 @@ CircularBoundedJournal::CircularBoundedJournal(
     const std::string &path)
   : trimmer(trimmer), device(device), path(path) {}
 
-CircularBoundedJournal::mkfs_ret CircularBoundedJournal::mkfs()
+ceph::bufferlist CircularBoundedJournal::encode_header()
+{
+  bufferlist bl;
+  encode(header, bl);
+  auto header_crc_filler = bl.append_hole(sizeof(checksum_t));
+  auto bliter = bl.cbegin();
+  auto header_crc = bliter.crc32c(
+    ceph::encoded_sizeof_bounded<cbj_header_t>(),
+    -1);
+  ceph_le32 header_crc_le;
+  header_crc_le = header_crc;
+  header_crc_filler.copy_in(
+    sizeof(checksum_t),
+    reinterpret_cast<const char *>(&header_crc_le));
+  return bl;
+}
+
+CircularBoundedJournal::open_for_mkfs_ret
+CircularBoundedJournal::open_for_mkfs()
 {
-  LOG_PREFIX(CircularBoundedJournal::mkfs);
+  LOG_PREFIX(CircularBoundedJournal::open_for_mkfs);
   assert(device);
   ceph::bufferlist bl;
   CircularBoundedJournal::cbj_header_t head;
@@ -49,37 +67,16 @@ CircularBoundedJournal::mkfs_ret CircularBoundedJournal::mkfs()
     "initialize header block in CircularBoundedJournal, length {}",
     bl.length());
   return write_header(
-  ).handle_error(
-    mkfs_ertr::pass_further{},
+  ).safe_then([this]() {
+    return open_for_mount();
+  }).handle_error(
+    open_for_mkfs_ertr::pass_further{},
     crimson::ct_error::assert_all{
-      "Invalid error in CircularBoundedJournal::mkfs"
+      "Invalid error write_header"
     }
   );
 }
 
-ceph::bufferlist CircularBoundedJournal::encode_header()
-{
-  bufferlist bl;
-  encode(header, bl);
-  auto header_crc_filler = bl.append_hole(sizeof(checksum_t));
-  auto bliter = bl.cbegin();
-  auto header_crc = bliter.crc32c(
-    ceph::encoded_sizeof_bounded<cbj_header_t>(),
-    -1);
-  ceph_le32 header_crc_le;
-  header_crc_le = header_crc;
-  header_crc_filler.copy_in(
-    sizeof(checksum_t),
-    reinterpret_cast<const char *>(&header_crc_le));
-  return bl;
-}
-
-CircularBoundedJournal::open_for_mkfs_ret
-CircularBoundedJournal::open_for_mkfs()
-{
-  return open_for_mount();
-}
-
 CircularBoundedJournal::open_for_mount_ret
 CircularBoundedJournal::open_for_mount()
 {
index 1a50f43751c17e8e456b74d4c21ca4eab62fc0ef..0f3ac8aeee671ae424df05aaa4bee94dc0d691a0 100644 (file)
@@ -135,21 +135,6 @@ public:
 
   ceph::bufferlist encode_header();
 
-  using mkfs_ertr = crimson::errorator<
-    crimson::ct_error::input_output_error,
-    crimson::ct_error::invarg
-  >;
-  using mkfs_ret = mkfs_ertr::future<>;
-
-  /*
-   * mkfs
-   *
-   * make a new journal layout even if old journal exists
-   *
-   *
-   */
-  mkfs_ret mkfs();
-
 
   /**
    * CircularBoundedJournal structure
index 655f3dbf7a758352191989cf0dc6254973ceac90..529e782a111bc021d2e3c023a134dbfd3202c22e 100644 (file)
@@ -252,15 +252,15 @@ struct cbjournal_test_t : public seastar_test_suite_t, JournalTrimmer
       device->set_journal_size(CBTEST_DEFAULT_TEST_SIZE);
       return device->mkfs(config
       ).safe_then([this]() {
-       return cbj->mkfs(
-       ).safe_then([]() {
+       return cbj->open_for_mkfs(
+       ).safe_then([](auto q) {
          return seastar::now();
        });
       });
     }).unsafe_get0();
   }
   void open() {
-    return cbj->open_for_mkfs(
+    return cbj->open_for_mount(
     ).safe_then([](auto q) {
       return seastar::now();
     }).unsafe_get0();
index f640008befe947d25b91a452ab9ed2a7e25f5d59..f346a5d12548f957a4b24486cb68722e4d7a9355 100644 (file)
@@ -217,22 +217,10 @@ protected:
   }
 
   virtual FuturizedStore::mkfs_ertr::future<> _mkfs() {
-    if (journal_type == journal_type_t::SEGMENTED) {
-      return tm->mkfs(
-      ).handle_error(
-       crimson::ct_error::assert_all{"Error in mkfs"}
-      );
-    } else {
-      return static_cast<journal::CircularBoundedJournal*>(tm->get_journal())->mkfs(
-      ).safe_then([this]() {
-       return tm->mkfs(
-       ).handle_error(
-         crimson::ct_error::assert_all{"Error in mkfs"}
-       );
-      }).handle_error(
-       crimson::ct_error::assert_all{"Error in mkfs"}
-      );
-    }
+    return tm->mkfs(
+    ).handle_error(
+      crimson::ct_error::assert_all{"Error in mkfs"}
+    );
   }
 
   auto create_mutate_transaction() {