]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
rgw: make rgw_cls_complete_op backward compatible
authorYehuda Sadeh <yehuda@inktank.com>
Wed, 3 Jul 2013 20:04:45 +0000 (13:04 -0700)
committerYehuda Sadeh <yehuda@inktank.com>
Wed, 3 Jul 2013 20:04:45 +0000 (13:04 -0700)
Signed-off-by: Yehuda Sadeh <yehuda@inktank.com>
src/cls/rgw/cls_rgw_ops.h

index c0c69d2e4ed1d3627e225774d7a8b8be017e51c5..25616c7776a3fe0f3b7aaeaec6d1f1d0ab9e7ba8 100644 (file)
@@ -84,11 +84,12 @@ struct rgw_cls_obj_complete_op
     uint8_t c = (uint8_t)op;
     ::encode(c, bl);
     ::encode(name, bl);
-    ::encode(ver, bl);
+    ::encode(ver.epoch, bl);
     ::encode(meta, bl);
     ::encode(tag, bl);
     ::encode(locator, bl);
     ::encode(remove_objs, bl);
+    ::encode(ver, bl);
     ::encode(log_op, bl);
     ENCODE_FINISH(bl);
  }
@@ -98,12 +99,7 @@ struct rgw_cls_obj_complete_op
     ::decode(c, bl);
     op = (RGWModifyOp)c;
     ::decode(name, bl);
-    if (struct_v >= 5) {
-      ::decode(ver, bl);
-    } else {
-      ver.pool = 0;
-      ::decode(ver.epoch, bl);
-    }
+    ::decode(ver.epoch, bl);
     ::decode(meta, bl);
     ::decode(tag, bl);
     if (struct_v >= 2) {
@@ -112,6 +108,11 @@ struct rgw_cls_obj_complete_op
     if (struct_v >= 4) {
       ::decode(remove_objs, bl);
     }
+    if (struct_v >= 5) {
+      ::decode(ver, bl);
+    } else {
+      ver.pool = -1;
+    }
     if (struct_v >= 6) {
       ::decode(log_op, bl);
     }