void OSDSuperblock::encode(ceph::buffer::list &bl) const
{
- ENCODE_START(8, 5, bl);
+ ENCODE_START(9, 5, bl);
encode(cluster_fsid, bl);
encode(whoami, bl);
encode(current_epoch, bl);
encode(osd_fsid, bl);
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_FINISH(bl);
}
void OSDSuperblock::decode(ceph::buffer::list::const_iterator &bl)
{
- DECODE_START_LEGACY_COMPAT_LEN(8, 5, 5, bl);
+ DECODE_START_LEGACY_COMPAT_LEN(9, 5, 5, bl);
if (struct_v < 3) {
string magic;
decode(magic, bl);
map<int64_t,epoch_t> pool_last_map_marked_full;
decode(pool_last_map_marked_full, bl);
}
+ if (struct_v >= 9) {
+ decode(purged_snaps_last, bl);
+ } else {
+ purged_snaps_last = 0;
+ }
DECODE_FINISH(bl);
}
f->close_section();
f->dump_int("clean_thru", clean_thru);
f->dump_int("last_epoch_mounted", mounted);
+ f->dump_unsigned("purged_snaps_last", purged_snaps_last);
}
void OSDSuperblock::generate_test_instances(list<OSDSuperblock*>& o)
epoch_t mounted = 0; // last epoch i mounted
epoch_t clean_thru = 0; // epoch i was active and clean thru
+ epoch_t purged_snaps_last = 0;
void encode(ceph::buffer::list &bl) const;
void decode(ceph::buffer::list::const_iterator &bl);