// find next entry
read_pos = header.start;
+ __u64 seq = 0;
while (1) {
bufferlist bl;
- __u64 seq;
off64_t old_pos = read_pos;
if (!read_entry(bl, seq)) {
dout(10) << "open reached end of journal." << dendl;
read_pos = old_pos;
break;
}
+ seq++; // next event should follow.
}
return 0;
<< " " << h.len << " bytes"
<< dendl;
+ if (seq && h.seq != seq) {
+ dout(2) << "read_entry " << read_pos << " : got seq " << h.seq << ", expected " << seq << ", stopping" << dendl;
+ return false;
+ }
+
if (h.seq < last_committed_seq) {
dout(0) << "read_entry seq " << seq << " < last_committed_seq " << last_committed_seq << dendl;
assert(h.seq >= last_committed_seq);
int count = 0;
while (1) {
bufferlist bl;
- __u64 seq;
+ __u64 seq = op_seq + 1;
if (!journal->read_entry(bl, seq)) {
dout(3) << "journal_replay: end of journal, done." << dendl;
break;
dout(3) << "journal_replay: r = " << r << ", op now seq " << op_seq << dendl;
assert(op_seq == seq);
+ seq++; // we expect the next op
}
// done reading, make writeable.