]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
seastore/cbjournal: make open_device_read_header not to be called if init is true
authormyoungwon oh <ohmyoungwon@gmail.com>
Thu, 12 May 2022 02:38:43 +0000 (11:38 +0900)
committermyoungwon oh <ohmyoungwon@gmail.com>
Thu, 19 May 2022 00:49:48 +0000 (09:49 +0900)
Signed-off-by: Myoungwon Oh <myoungwon.oh@samsung.com>
src/crimson/os/seastore/journal/circular_bounded_journal.cc
src/test/crimson/seastore/test_cbjournal.cc

index 3ad908dfe02163f48b98746ec41c713444b0a26c..3f8f80d24e8fcb8fa8772521a5aca7629da88e52 100644 (file)
@@ -94,6 +94,17 @@ ceph::bufferlist CircularBoundedJournal::encode_header()
 
 CircularBoundedJournal::open_for_write_ret CircularBoundedJournal::open_for_write()
 {
+  if (init) {
+    paddr_t paddr = convert_abs_addr_to_paddr(
+      get_written_to(),
+      header.device_id);
+    return open_for_write_ret(
+      open_for_write_ertr::ready_future_marker{},
+      journal_seq_t{
+       cur_segment_seq,
+       paddr
+      });
+  }
   return open_device_read_header(CBJOURNAL_START_ADDRESS);
 }
 
@@ -115,17 +126,7 @@ CircularBoundedJournal::open_for_write_ret
 CircularBoundedJournal::open_device_read_header(rbm_abs_addr start)
 {
   LOG_PREFIX(CircularBoundedJournal::open_for_write);
-  if (init) {
-    paddr_t paddr = convert_abs_addr_to_paddr(
-      get_written_to(),
-      header.device_id);
-    return open_for_write_ret(
-      open_for_write_ertr::ready_future_marker{},
-      journal_seq_t{
-       cur_segment_seq,
-       paddr
-      });
-  }
+  ceph_assert(!init);
   return _open_device(path
   ).safe_then([this, start, FNAME]() {
     return read_header(start
index 95379d701bf517ee61ef5f9160f5a22e1b16dfcf..9832add3e725479e59efefb0fef66896d669e6f9 100644 (file)
@@ -397,6 +397,7 @@ TEST_F(cbjournal_test_t, update_header)
     update_journal_tail(entries.front().addr, record_total_size);
     cbj->write_header().unsafe_get0();
     auto [update_header, update_buf2] = *(cbj->read_header(0).unsafe_get0());
+    cbj->close().unsafe_get0();
     replay();
 
     ASSERT_EQ(update_header.journal_tail, update_header.journal_tail);
@@ -437,6 +438,7 @@ TEST_F(cbjournal_test_t, replay)
        { generate_delta(20), generate_delta(21) }
        });
     ASSERT_EQ(avail - record_total_size, get_available_size());
+    cbj->close().unsafe_get0();
     replay();
   });
 }
@@ -463,6 +465,7 @@ TEST_F(cbjournal_test_t, replay_after_reset)
     auto old_written_to = get_written_to();
     auto old_used_size = get_used_size();
     set_written_to(4096);
+    cbj->close().unsafe_get0();
     replay();
     ASSERT_EQ(old_written_to, get_written_to());
     ASSERT_EQ(old_used_size,