recovery_point
vdo_pack_journal_point(&header->recovery_point, &packed->recovery_point);
vdo_unpack_journal_point(&packed->recovery_point, &header->recovery_point);
struct journal_point recovery_point;
struct packed_journal_point recovery_point;
struct recovery_point tail_recovery_point;
struct recovery_point next_recovery_point;
struct recovery_point recovery_point = {
for (; before_recovery_point(&recovery_point, &repair->tail_recovery_point);
increment_recovery_point(&recovery_point)) {
struct recovery_journal_entry entry = get_entry(repair, &recovery_point);
struct recovery_point recovery_point = {
for (; before_recovery_point(&recovery_point, &repair->tail_recovery_point);
increment_recovery_point(&recovery_point)) {
struct recovery_journal_entry entry = get_entry(repair, &recovery_point);
repair->tail_recovery_point = (struct recovery_point) {
static void increment_recovery_point(struct recovery_point *point)
static bool __must_check before_recovery_point(const struct recovery_point *first,
const struct recovery_point *second)
const struct recovery_point *point)
struct recovery_point *recovery_point;
for (recovery_point = &repair->next_recovery_point;
before_recovery_point(recovery_point, &repair->tail_recovery_point);
struct recovery_journal_entry entry = get_entry(repair, recovery_point);
repair->next_recovery_point = (struct recovery_point) {
static struct journal_point expand_journal_point(struct journal_point recovery_point,
recovery_point.entry_count *= 2;
recovery_point.entry_count++;
return recovery_point;
struct journal_point recovery_point)
result = VDO_ASSERT(vdo_before_journal_point(&journal->tail_header.recovery_point,
&recovery_point),
(unsigned long long) recovery_point.sequence_number,
recovery_point.entry_count,
(unsigned long long) journal->tail_header.recovery_point.sequence_number,
journal->tail_header.recovery_point.entry_count);
journal->tail_header.recovery_point = recovery_point;
struct journal_point *recovery_point,
struct journal_point expanded = expand_journal_point(*recovery_point, increment);
if (!vdo_before_journal_point(&journal->tail_header.recovery_point, &expanded))
struct journal_point *recovery_point,