From 3217ca77cbd683a0f5d918c4cadb0cf5a149eacc Mon Sep 17 00:00:00 2001 From: Sage Weil Date: Fri, 7 Jun 2019 13:48:49 -0500 Subject: [PATCH] osd/osd_types: add purged_snaps_last to OSDSuperblock Make this 0 for old encodings or new superblocks. Signed-off-by: Sage Weil --- src/osd/osd_types.cc | 11 +++++++++-- src/osd/osd_types.h | 1 + 2 files changed, 10 insertions(+), 2 deletions(-) diff --git a/src/osd/osd_types.cc b/src/osd/osd_types.cc index 5f3c51705959f..41279e0a3e406 100644 --- a/src/osd/osd_types.cc +++ b/src/osd/osd_types.cc @@ -5201,7 +5201,7 @@ void pg_hit_set_history_t::generate_test_instances(list& 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); @@ -5214,12 +5214,13 @@ void OSDSuperblock::encode(ceph::buffer::list &bl) const encode(osd_fsid, bl); encode((epoch_t)0, bl); // epoch_t last_epoch_marked_full encode((uint32_t)0, bl); // map 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); @@ -5247,6 +5248,11 @@ void OSDSuperblock::decode(ceph::buffer::list::const_iterator &bl) map 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); } @@ -5264,6 +5270,7 @@ void OSDSuperblock::dump(Formatter *f) const 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& o) diff --git a/src/osd/osd_types.h b/src/osd/osd_types.h index bea8bab0ad94e..a1f321b95086b 100644 --- a/src/osd/osd_types.h +++ b/src/osd/osd_types.h @@ -4994,6 +4994,7 @@ public: 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); -- 2.39.5