]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commitdiff
mon: use pre-encoded OSDMap for build_latest_full() MOSDMap message
authorSage Weil <sage@redhat.com>
Sat, 16 Aug 2014 00:01:14 +0000 (17:01 -0700)
committerSage Weil <sage@redhat.com>
Mon, 10 Nov 2014 22:20:24 +0000 (14:20 -0800)
Do not reencode; use our existing encoded bufferlist.

Signed-off-by: Sage Weil <sage@redhat.com>
src/messages/MOSDMap.h
src/mon/OSDMonitor.cc

index 7ed601c6b365e921021ccaa7f6d546eb96e2511b..9c15290b7e9d9d524a9fae6c3fc7cc4be5dc1cbf 100644 (file)
@@ -57,13 +57,10 @@ class MOSDMap : public Message {
 
 
   MOSDMap() : Message(CEPH_MSG_OSD_MAP, HEAD_VERSION) { }
-  MOSDMap(const uuid_d &f, OSDMap *oc=0)
+  MOSDMap(const uuid_d &f)
     : Message(CEPH_MSG_OSD_MAP, HEAD_VERSION),
       fsid(f),
-      oldest_map(0), newest_map(0) {
-    if (oc)
-      oc->encode(maps[oc->get_epoch()]);
-  }
+      oldest_map(0), newest_map(0) { }
 private:
   ~MOSDMap() {}
 
index 1c4cd8e015e4f6e4d0462bdc0fe163db23129eb0..112dd06ee7ddc2c45ba1404a3711674004197bf9 100644 (file)
@@ -1716,7 +1716,8 @@ void OSDMonitor::send_latest(PaxosServiceMessage *m, epoch_t start)
 
 MOSDMap *OSDMonitor::build_latest_full()
 {
-  MOSDMap *r = new MOSDMap(mon->monmap->fsid, &osdmap);
+  MOSDMap *r = new MOSDMap(mon->monmap->fsid);
+  get_version_full(osdmap.get_epoch(), r->maps[osdmap.get_epoch()]);
   r->oldest_map = get_first_committed();
   r->newest_map = osdmap.get_epoch();
   return r;