]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commitdiff
osd_types: bring ScrubMap::object up to the 0.56.1 encoding
authorSamuel Just <sam.just@inktank.com>
Wed, 9 Jan 2013 19:56:16 +0000 (11:56 -0800)
committerSage Weil <sage@inktank.com>
Wed, 16 Jan 2013 03:21:15 +0000 (19:21 -0800)
We need to introduce some new fields here, so to maintain compatibility
we'll need to first bring the 48.* series up to the current encoding.

Signed-off-by: Samuel Just <sam.just@inktank.com>
src/osd/osd_types.cc
src/osd/osd_types.h

index c939270f71808c63419660ef529201a3a273763c..74975a9175896de0641210bea980305155a09070 100644 (file)
@@ -2508,19 +2508,29 @@ void ScrubMap::generate_test_instances(list<ScrubMap*>& o)
 
 void ScrubMap::object::encode(bufferlist& bl) const
 {
-  ENCODE_START(2, 2, bl);
+  ENCODE_START(3, 2, bl);
   ::encode(size, bl);
   ::encode(negative, bl);
   ::encode(attrs, bl);
+  ::encode(digest, bl);
+  ::encode(digest_present, bl);
   ENCODE_FINISH(bl);
 }
 
 void ScrubMap::object::decode(bufferlist::iterator& bl)
 {
-  DECODE_START_LEGACY_COMPAT_LEN(2, 2, 2, bl);
+  DECODE_START_LEGACY_COMPAT_LEN(3, 2, 2, bl);
   ::decode(size, bl);
   ::decode(negative, bl);
   ::decode(attrs, bl);
+  if (struct_v >= 3) {
+    ::decode(digest, bl);
+    ::decode(digest_present, bl);
+  }
+  else {
+    digest = 0;
+    digest_present = false;
+  }
   DECODE_FINISH(bl);
 }
 
index e2ca0e045151e31be5de2688eafa6acad987fb1c..b2a41a175a715ed2d0ec5df31b86409d97f6eefd 100644 (file)
@@ -1749,8 +1749,10 @@ struct ScrubMap {
     uint64_t size;
     bool negative;
     map<string,bufferptr> attrs;
+    __u32 digest;
+    bool digest_present;
 
-    object(): size(0), negative(false) {}
+    object(): size(0), negative(false), digest(0), digest_present(false) {}
 
     void encode(bufferlist& bl) const;
     void decode(bufferlist::iterator& bl);