]> git.proxmox.com Git - ceph.git/blobdiff - ceph/src/messages/MOSDPGRecoveryDelete.h
update sources to v12.2.1
[ceph.git] / ceph / src / messages / MOSDPGRecoveryDelete.h
index 3941f9f53e8c435f01b2a7b9f8e1e653132315a5..2643acd376437903f85ff5f6c71d7953ef57ee85 100644 (file)
@@ -5,6 +5,7 @@
 #define CEPH_MOSDPGRECOVERYDELETE_H
 
 #include "MOSDFastDispatchOp.h"
+#include "include/ceph_features.h"
 
 /*
  * instruct non-primary to remove some objects during recovery
@@ -12,7 +13,7 @@
 
 struct MOSDPGRecoveryDelete : public MOSDFastDispatchOp {
 
-  static const int HEAD_VERSION = 1;
+  static const int HEAD_VERSION = 2;
   static const int COMPAT_VERSION = 1;
 
   pg_shard_t from;
@@ -70,7 +71,9 @@ public:
     ::encode(from, payload);
     ::encode(pgid, payload);
     ::encode(map_epoch, payload);
-    ::encode(min_epoch, payload);
+    if (HAVE_FEATURE(features, SERVER_LUMINOUS)) {
+      ::encode(min_epoch, payload);
+    }
     ::encode(cost, payload);
     ::encode(objects, payload);
   }
@@ -79,7 +82,12 @@ public:
     ::decode(from, p);
     ::decode(pgid, p);
     ::decode(map_epoch, p);
-    ::decode(min_epoch, p);
+    if (header.version == 1 &&
+       !HAVE_FEATURE(get_connection()->get_features(), SERVER_LUMINOUS)) {
+      min_epoch = map_epoch;
+    } else {
+      ::decode(min_epoch, p);
+    }
     ::decode(cost, p);
     ::decode(objects, p);
   }