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);
}
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
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);
{ generate_delta(20), generate_delta(21) }
});
ASSERT_EQ(avail - record_total_size, get_available_size());
+ cbj->close().unsafe_get0();
replay();
});
}
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,