pg_log.roll_forward_to(
roll_forward_to,
&handler);
- t.register_on_applied(
- new C_UpdateLastRollbackInfoTrimmedToApplied(
- this,
- get_osdmap()->get_epoch(),
- roll_forward_to));
+ last_rollback_info_trimmed_to_applied = roll_forward_to;
}
pg_log.trim(trim_to, info);
eversion_t last_complete_ondisk; // last_complete that has committed.
eversion_t last_update_applied;
-
- struct C_UpdateLastRollbackInfoTrimmedToApplied : Context {
- PGRef pg;
- epoch_t e;
- eversion_t v;
- C_UpdateLastRollbackInfoTrimmedToApplied(PG *pg, epoch_t e, eversion_t v)
- : pg(pg), e(e), v(v) {}
- bool sync_finish(int r) override {
- pg->last_rollback_info_trimmed_to_applied = v;
- return true;
- }
- void finish(int) override {
- pg->lock();
- if (!pg->pg_has_reset_since(e)) {
- pg->last_rollback_info_trimmed_to_applied = v;
- }
- pg->unlock();
- }
- };
- // entries <= last_rollback_info_trimmed_to_applied have been trimmed,
- // and the transaction has applied
+ // entries <= last_rollback_info_trimmed_to_applied have been trimmed
eversion_t last_rollback_info_trimmed_to_applied;
// primary state