]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commitdiff
osd: OSDMap: ordered blacklist on non-classic encode function
authorJoao Eduardo Luis <joao.luis@inktank.com>
Fri, 29 Aug 2014 19:21:25 +0000 (20:21 +0100)
committerSage Weil <sage@redhat.com>
Fri, 29 Aug 2014 23:08:23 +0000 (16:08 -0700)
Fixes: #9211
Backport: firefly

Signed-off-by: Joao Eduardo Luis <joao.luis@inktank.com>
Reviewed-by: Sage Weil <sage@redhat.com>
(cherry picked from commit 81102044f417bd99ca570d9234b1df5195e9a8c9)

src/osd/OSDMap.cc

index 370c1e3340642a9012197a3beb1225d9009db485..645a6f70d17b0e7bed3cbd2bd4bcfcb7ab54b3fa 100644 (file)
@@ -1749,15 +1749,7 @@ void OSDMap::encode_classic(bufferlist& bl, uint64_t features) const
   ::encode(ev, bl);
   ::encode(osd_addrs->hb_back_addr, bl);
   ::encode(osd_info, bl);
-  {
-    // put this in a sorted, ordered map<> so that we encode in a
-    // deterministic order.
-    map<entity_addr_t,utime_t> blacklist_map;
-    for (ceph::unordered_map<entity_addr_t,utime_t>::const_iterator p =
-          blacklist.begin(); p != blacklist.end(); ++p)
-      blacklist_map.insert(make_pair(p->first, p->second));
-    ::encode(blacklist_map, bl);
-  }
+  ::encode(blacklist, bl);
   ::encode(osd_addrs->cluster_addr, bl);
   ::encode(cluster_snapshot_epoch, bl);
   ::encode(cluster_snapshot, bl);
@@ -1815,7 +1807,15 @@ void OSDMap::encode(bufferlist& bl, uint64_t features) const
     ENCODE_START(1, 1, bl); // extended, osd-only data
     ::encode(osd_addrs->hb_back_addr, bl);
     ::encode(osd_info, bl);
-    ::encode(blacklist, bl);
+    {
+      // put this in a sorted, ordered map<> so that we encode in a
+      // deterministic order.
+      map<entity_addr_t,utime_t> blacklist_map;
+      for (ceph::unordered_map<entity_addr_t,utime_t>::const_iterator p =
+            blacklist.begin(); p != blacklist.end(); ++p)
+       blacklist_map.insert(make_pair(p->first, p->second));
+      ::encode(blacklist_map, bl);
+    }
     ::encode(osd_addrs->cluster_addr, bl);
     ::encode(cluster_snapshot_epoch, bl);
     ::encode(cluster_snapshot, bl);