for (vector<int>::const_iterator p = acting.begin(); p != acting.end(); ++p)
f->dump_int("osd", *p);
f->close_section();
+ f->open_array_section("blocked_by");
+ for (vector<int>::const_iterator p = blocked_by.begin();
+ p != blocked_by.end(); ++p)
+ f->dump_int("osd", *p);
+ f->close_section();
f->dump_int("up_primary", up_primary);
f->dump_int("acting_primary", acting_primary);
}
void pg_stat_t::encode(bufferlist &bl) const
{
- ENCODE_START(17, 8, bl);
+ ENCODE_START(18, 8, bl);
::encode(version, bl);
::encode(reported_seq, bl);
::encode(reported_epoch, bl);
::encode(acting_primary, bl);
::encode(omap_stats_invalid, bl);
::encode(hitset_stats_invalid, bl);
+ ::encode(blocked_by, bl);
ENCODE_FINISH(bl);
}
void pg_stat_t::decode(bufferlist::iterator &bl)
{
- DECODE_START_LEGACY_COMPAT_LEN(17, 8, 8, bl);
+ DECODE_START_LEGACY_COMPAT_LEN(18, 8, 8, bl);
::decode(version, bl);
::decode(reported_seq, bl);
::decode(reported_epoch, bl);
// encoder may not have supported num_objects_hit_set_archive accounting.
hitset_stats_invalid = true;
}
+ if (struct_v >= 18) {
+ ::decode(blocked_by, bl);
+ } else {
+ blocked_by.clear();
+ }
DECODE_FINISH(bl);
}
a.up_primary = 124;
a.acting.push_back(124);
a.acting_primary = 124;
+ a.blocked_by.push_back(155);
+ a.blocked_by.push_back(156);
o.push_back(new pg_stat_t(a));
}