From: Sage Weil Date: Tue, 25 Oct 2011 17:51:21 +0000 (-0700) Subject: MOSDMap: reencode full map embedded in Incremental, as needed X-Git-Tag: v0.38~57^2~2^2~1 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=72e0ca02615098695c714ffee62c94dfb0c81e3d;p=ceph.git MOSDMap: reencode full map embedded in Incremental, as needed The Incremental may have a bufferlist containing a full map; reencode that too if we are reencoding for old clients. Signed-off-by: Sage Weil --- diff --git a/src/messages/MOSDMap.h b/src/messages/MOSDMap.h index 1a956a44b6e2..a7ff30858ece 100644 --- a/src/messages/MOSDMap.h +++ b/src/messages/MOSDMap.h @@ -93,6 +93,13 @@ public: bufferlist::iterator q = p->second.begin(); inc.decode(q); p->second.clear(); + if (inc.fullmap.length()) { + // embedded full map? + OSDMap m; + m.decode(inc.fullmap); + inc.fullmap.clear(); + m.encode(inc.fullmap, connection->get_features()); + } inc.encode(p->second, connection->get_features()); } for (map::iterator p = maps.begin();