if (tail.segment_nonce != header.segment_nonce) {
return scan_no_tail_segment(header, segment_id);
}
- if (tail.get_type() == segment_type_t::JOURNAL) {
- update_journal_tail_committed(tail.journal_tail);
- update_journal_tail_target(
- tail.journal_tail,
- tail.alloc_replay_from);
- }
sea_time_point modify_time = mod_to_timepoint(tail.modify_time);
std::size_t num_extents = tail.num_extents;
auto close_segment_id = seg_to_close->get_segment_id();
segment_provider.close_segment(close_segment_id);
auto close_seg_info = segment_provider.get_seg_info(close_segment_id);
- journal_seq_t cur_journal_tail;
- journal_seq_t new_alloc_replay_from;
- if (type == segment_type_t::JOURNAL) {
- cur_journal_tail = segment_provider.get_journal_tail_target();
- new_alloc_replay_from = segment_provider.get_alloc_info_replay_from();
- } else { // OOL
- cur_journal_tail = NO_DELTAS;
- new_alloc_replay_from = NO_DELTAS;
- }
ceph_assert((close_seg_info.modify_time == NULL_TIME &&
close_seg_info.num_extents == 0) ||
(close_seg_info.modify_time != NULL_TIME &&
auto tail = segment_tail_t{
close_seg_info.seq,
close_segment_id,
- cur_journal_tail,
- new_alloc_replay_from,
current_segment_nonce,
type,
timepoint_to_mod(close_seg_info.modify_time),
close_seg_info.num_extents};
ceph::bufferlist bl;
encode(tail, bl);
- INFO("{} close segment id={}, seq={}, written_to={}, nonce={}, journal_tail={}",
+ INFO("{} close segment id={}, seq={}, written_to={}, nonce={}",
print_name,
close_segment_id,
close_seg_info.seq,
written_to,
- current_segment_nonce,
- tail.journal_tail);
+ current_segment_nonce);
bufferptr bp(ceph::buffer::create_page_aligned(get_block_size()));
bp.zero();
return out << "segment_tail_t("
<< "segment_seq=" << tail.segment_seq
<< ", segment_id=" << tail.physical_segment_id
- << ", journal_tail=" << tail.journal_tail
<< ", segment_nonce=" << tail.segment_nonce
<< ", modify_time=" << mod_time_point_printer_t{tail.modify_time}
<< ", num_extents=" << tail.num_extents
segment_seq_t segment_seq;
segment_id_t physical_segment_id; // debugging
- journal_seq_t journal_tail;
- journal_seq_t alloc_replay_from;
segment_nonce_t segment_nonce;
segment_type_t type;
DENC_START(1, 1, p);
denc(v.segment_seq, p);
denc(v.physical_segment_id, p);
- denc(v.journal_tail, p);
- denc(v.alloc_replay_from, p);
denc(v.segment_nonce, p);
denc(v.type, p);
denc(v.modify_time, p);