From: myoungwon oh Date: Thu, 12 May 2022 02:38:43 +0000 (+0900) Subject: seastore/cbjournal: make open_device_read_header not to be called if init is true X-Git-Tag: v18.0.0~857^2~17 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=954102b4459d7d2a0b544d95cb35edbab372942d;p=ceph.git seastore/cbjournal: make open_device_read_header not to be called if init is true Signed-off-by: Myoungwon Oh --- diff --git a/src/crimson/os/seastore/journal/circular_bounded_journal.cc b/src/crimson/os/seastore/journal/circular_bounded_journal.cc index 3ad908dfe0216..3f8f80d24e8fc 100644 --- a/src/crimson/os/seastore/journal/circular_bounded_journal.cc +++ b/src/crimson/os/seastore/journal/circular_bounded_journal.cc @@ -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 diff --git a/src/test/crimson/seastore/test_cbjournal.cc b/src/test/crimson/seastore/test_cbjournal.cc index 95379d701bf51..9832add3e7254 100644 --- a/src/test/crimson/seastore/test_cbjournal.cc +++ b/src/test/crimson/seastore/test_cbjournal.cc @@ -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,