From: Sage Weil Date: Sat, 16 Aug 2014 00:01:14 +0000 (-0700) Subject: mon: use pre-encoded OSDMap for build_latest_full() MOSDMap message X-Git-Tag: v0.91~55^2~2^2~16 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=2f92d8d9b56e6d40ccc01edce38623727d4cd6b5;p=ceph.git mon: use pre-encoded OSDMap for build_latest_full() MOSDMap message Do not reencode; use our existing encoded bufferlist. Signed-off-by: Sage Weil --- diff --git a/src/messages/MOSDMap.h b/src/messages/MOSDMap.h index 7ed601c6b365..9c15290b7e9d 100644 --- a/src/messages/MOSDMap.h +++ b/src/messages/MOSDMap.h @@ -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() {} diff --git a/src/mon/OSDMonitor.cc b/src/mon/OSDMonitor.cc index 1c4cd8e015e4..112dd06ee7dd 100644 --- a/src/mon/OSDMonitor.cc +++ b/src/mon/OSDMonitor.cc @@ -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;