From eae1922ad5177080ffde8b101a3de9865c6f7ccd Mon Sep 17 00:00:00 2001 From: Sage Weil Date: Thu, 25 Aug 2011 14:08:52 -0700 Subject: [PATCH] osd: decode old pg_stat_t Signed-off-by: Sage Weil --- src/osd/osd_types.h | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/src/osd/osd_types.h b/src/osd/osd_types.h index befef34a1e268..b65ec249da9f5 100644 --- a/src/osd/osd_types.h +++ b/src/osd/osd_types.h @@ -846,7 +846,7 @@ struct pg_stat_t { } void encode(bufferlist &bl) const { - __u8 v = 5; + __u8 v = 6; ::encode(v, bl); ::encode(version, bl); @@ -868,7 +868,7 @@ struct pg_stat_t { void decode(bufferlist::iterator &bl) { __u8 v; ::decode(v, bl); - if (v > 5) + if (v > 6) throw buffer::malformed_input("unknown pg_stat_t encoding version > 4"); ::decode(version, bl); @@ -877,7 +877,13 @@ struct pg_stat_t { ::decode(log_start, bl); ::decode(ondisk_log_start, bl); ::decode(created, bl); - ::decode(parent, bl); + if (v < 6) { + old_pg_t opgid; + ::decode(opgid, bl); + parent = opgid; + } else { + ::decode(parent, bl); + } ::decode(parent_split_bits, bl); ::decode(last_scrub, bl); ::decode(last_scrub_stamp, bl); -- 2.39.5