]> git.proxmox.com Git - ceph.git/blobdiff - ceph/src/messages/MOSDMap.h
update sources to 12.2.2
[ceph.git] / ceph / src / messages / MOSDMap.h
index 72246288a51493ca59db1636abd13f9fad3316aa..865642cf417c30f487fb3a698946a20e86f8075f 100644 (file)
@@ -86,7 +86,8 @@ public:
        (features & CEPH_FEATURE_PGPOOL3) == 0 ||
        (features & CEPH_FEATURE_OSDENC) == 0 ||
         (features & CEPH_FEATURE_OSDMAP_ENC) == 0 ||
-       (features & CEPH_FEATURE_MSG_ADDR2) == 0) {
+       (features & CEPH_FEATURE_MSG_ADDR2) == 0 ||
+       !HAVE_FEATURE(features, SERVER_LUMINOUS)) {
       if ((features & CEPH_FEATURE_PGID64) == 0 ||
          (features & CEPH_FEATURE_PGPOOL3) == 0)
        header.version = 1;  // old old_client version
@@ -112,6 +113,14 @@ public:
          inc.fullmap.clear();
          m.encode(inc.fullmap, features | CEPH_FEATURE_RESERVED);
        }
+       if (inc.crush.length()) {
+         // embedded crush map
+         CrushWrapper c;
+         auto p = inc.crush.begin();
+         c.decode(p);
+         inc.crush.clear();
+         c.encode(inc.crush, features);
+       }
        inc.encode(p->second, features | CEPH_FEATURE_RESERVED);
       }
       for (map<epoch_t,bufferlist>::iterator p = maps.begin();