pg->queue_snap_retrim(snap);
pg->unlock();
}
+ ObjectStore::Transaction t;
+ superblock.last_purged_snaps_scrub = ceph_clock_now();
+ write_superblock(t);
+ int tr = store->queue_transaction(service.meta_ch, std::move(t), nullptr);
+ ceph_assert(tr == 0);
+ if (is_active()) {
+ send_beacon(ceph::coarse_mono_clock::now());
+ }
} else {
ss << "unrecognized command '" << prefix << "'";
r = -EINVAL;
encode((epoch_t)0, bl); // epoch_t last_epoch_marked_full
encode((uint32_t)0, bl); // map<int64_t,epoch_t> pool_last_epoch_marked_full
encode(purged_snaps_last, bl);
+ encode(last_purged_snaps_scrub, bl);
ENCODE_FINISH(bl);
}
}
if (struct_v >= 9) {
decode(purged_snaps_last, bl);
+ decode(last_purged_snaps_scrub, bl);
} else {
purged_snaps_last = 0;
}
f->dump_int("clean_thru", clean_thru);
f->dump_int("last_epoch_mounted", mounted);
f->dump_unsigned("purged_snaps_last", purged_snaps_last);
+ f->dump_stream("last_purged_snaps_scrub") << last_purged_snaps_scrub;
}
void OSDSuperblock::generate_test_instances(list<OSDSuperblock*>& o)
epoch_t clean_thru = 0; // epoch i was active and clean thru
epoch_t purged_snaps_last = 0;
+ utime_t last_purged_snaps_scrub;
void encode(ceph::buffer::list &bl) const;
void decode(ceph::buffer::list::const_iterator &bl);