When backfill is reset, the missing set should be cleared
since all objects are >last_backfill.
Fixes: #5320
Signed-off-by: Samuel Just <sam.just@inktank.com>
pg->dirty_big_info = true; // maybe.
pg->dirty_log = true;
pg->pg_log.claim_log(msg->log);
+ pg->pg_log.reset_backfill();
} else {
ObjectStore::Transaction* t = context<RecoveryMachine>().get_cur_transaction();
pg->merge_log(*t, msg->info, msg->log, logevt.from);
//////////////////// PGLog ////////////////////
+void PGLog::reset_backfill()
+{
+ missing.clear();
+ divergent_priors.clear();
+ dirty_divergent_priors = true;
+}
+
void PGLog::clear() {
ondisklog.zero();
ondisklog.has_checksums = true;
public:
+
+ void reset_backfill();
+
void clear();
//////////////////// get or set missing ////////////////////