]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commitdiff
Remove unused SnapContext member snapc from MOSDSubOp message. 6608/head
authorEmile Snyder <emsnyder@ebay.com>
Mon, 16 Nov 2015 21:02:02 +0000 (14:02 -0700)
committerEmile Snyder <emsnyder@ebay.com>
Wed, 30 Dec 2015 19:32:57 +0000 (12:32 -0700)
Signed-off-by: Emile Snyder <emsnyder@ebay.com>
src/include/ceph_features.h
src/messages/MOSDSubOp.h

index adf597a282a271aa9019ce1b3ed6baedb61904ce..4663aae9c8e17b0732305d21edacf52e9e1893c4 100755 (executable)
@@ -72,6 +72,7 @@
 #define CEPH_FEATURE_NEW_OSDOP_ENCODING   (1ULL<<56) /* New, v7 encoding */
 #define CEPH_FEATURE_MON_STATEFUL_SUB (1ULL<<57) /* stateful mon subscription */
 #define CEPH_FEATURE_MON_ROUTE_OSDMAP (1ULL<<57) /* peon sends osdmaps */
+#define CEPH_FEATURE_OSDSUBOP_NO_SNAPCONTEXT (1ULL<<57) /* overlap, drop unused SnapContext in v12 */
 #define CEPH_FEATURE_CRUSH_TUNABLES5   (1ULL<<58) /* chooseleaf stable mode */
 
 #define CEPH_FEATURE_RESERVED2 (1ULL<<61)  /* slow down, we are almost out... */
index 38c303c8e166a29c303452ccd01060acd2e063ae..373ad5a2f22b48adbb35da217d22bff6bd1688dd 100644 (file)
 #include "msg/Message.h"
 #include "osd/osd_types.h"
 
+#include "include/ceph_features.h"
+
 /*
  * OSD sub op - for internal ops on pobjects between primary and replicas(/stripes/whatever)
  */
 
 class MOSDSubOp : public Message {
 
-  static const int HEAD_VERSION = 11;
+  static const int HEAD_VERSION = 12;
   static const int COMPAT_VERSION = 7;
 
 public:
@@ -51,7 +53,6 @@ public:
   eversion_t old_version;
 
   SnapSet snapset;
-  SnapContext snapc;
 
   // transaction to exec
   bufferlist logbl;
@@ -128,7 +129,12 @@ public:
     ::decode(old_size, p);
     ::decode(old_version, p);
     ::decode(snapset, p);
-    ::decode(snapc, p);
+
+    if (header.version <= 11) {
+      SnapContext snapc_dont_need;
+      ::decode(snapc_dont_need, p);
+    }
+
     ::decode(logbl, p);
     ::decode(pg_stats, p);
     ::decode(pg_trim_to, p);
@@ -196,7 +202,13 @@ public:
     ::encode(old_size, payload);
     ::encode(old_version, payload);
     ::encode(snapset, payload);
-    ::encode(snapc, payload);
+
+    if ((features & CEPH_FEATURE_OSDSUBOP_NO_SNAPCONTEXT) == 0) {
+      header.version = 11;
+      SnapContext dummy_snapc;
+      ::encode(dummy_snapc, payload);
+    }
+
     ::encode(logbl, payload);
     ::encode(pg_stats, payload);
     ::encode(pg_trim_to, payload);
@@ -258,7 +270,7 @@ public:
     if (complete)
       out << " complete";
     out << " v " << version
-       << " snapset=" << snapset << " snapc=" << snapc;    
+       << " snapset=" << snapset;
     if (!data_subset.empty()) out << " subset " << data_subset;
     if (updated_hit_set_history)
       out << ", has_updated_hit_set_history";