void OSDSuperblock::encode(bufferlist &bl) const
{
- ENCODE_START(7, 5, bl);
+ ENCODE_START(8, 5, bl);
::encode(cluster_fsid, bl);
::encode(whoami, bl);
::encode(current_epoch, bl);
::encode(clean_thru, bl);
::encode(mounted, bl);
::encode(osd_fsid, bl);
- ::encode(last_map_marked_full, bl);
- ::encode(pool_last_map_marked_full, 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_FINISH(bl);
}
void OSDSuperblock::decode(bufferlist::iterator &bl)
{
- DECODE_START_LEGACY_COMPAT_LEN(6, 5, 5, bl);
+ DECODE_START_LEGACY_COMPAT_LEN(8, 5, 5, bl);
if (struct_v < 3) {
string magic;
::decode(magic, bl);
::decode(mounted, bl);
if (struct_v >= 4)
::decode(osd_fsid, bl);
- if (struct_v >= 6)
+ if (struct_v >= 6) {
+ epoch_t last_map_marked_full;
::decode(last_map_marked_full, bl);
- if (struct_v >= 7)
+ }
+ if (struct_v >= 7) {
+ map<int64_t,epoch_t> pool_last_map_marked_full;
::decode(pool_last_map_marked_full, bl);
+ }
DECODE_FINISH(bl);
}
f->close_section();
f->dump_int("clean_thru", clean_thru);
f->dump_int("last_epoch_mounted", mounted);
- f->dump_int("last_map_marked_full", last_map_marked_full);
}
void OSDSuperblock::generate_test_instances(list<OSDSuperblock*>& o)
z.mounted = 8;
z.clean_thru = 7;
o.push_back(new OSDSuperblock(z));
- z.last_map_marked_full = 7;
o.push_back(new OSDSuperblock(z));
}
// last interval over which i mounted and was then active
epoch_t mounted; // last epoch i mounted
epoch_t clean_thru; // epoch i was active and clean thru
- epoch_t last_map_marked_full; // last epoch osdmap was marked full
- map<int64_t, epoch_t> pool_last_map_marked_full; // last epoch pool was marked full
OSDSuperblock() :
whoami(-1),
current_epoch(0), oldest_map(0), newest_map(0), weight(0),
- mounted(0), clean_thru(0), last_map_marked_full(0) {
+ mounted(0), clean_thru(0) {
}
void encode(bufferlist &bl) const;