]> 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:06:46 +0000 (16:06 -0700)
Fixes: #9211
Backport: firefly

Signed-off-by: Joao Eduardo Luis <joao.luis@inktank.com>
Reviewed-by: Sage Weil <sage@redhat.com>
src/osd/OSDMap.cc

index 3dd0c1b5dc5ff01c46de209a8fae46f213e34bb0..ca0f6e63e0202a7b81f47f809f21d643a2dbf6e3 100644 (file)
@@ -1760,15 +1760,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);
@@ -1826,7 +1818,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);