From: Haomai Wang Date: Sat, 24 Dec 2016 03:33:34 +0000 (+0800) Subject: messages/MOSDSubOp: Make encode_payload can be reentrant X-Git-Tag: v12.0.0~358^2 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=refs%2Fpull%2F12654%2Fhead;p=ceph.git messages/MOSDSubOp: Make encode_payload can be reentrant Otherwise, AsyncConnection will use uninitialized feature to encode message. The caller side will set a old version header but encode with newest feature since passing feature is ok. It will let receiver side got a old header version but newest payload decode result. Signed-off-by: Haomai Wang --- diff --git a/src/messages/MOSDSubOp.h b/src/messages/MOSDSubOp.h index 82b866dc803..615e8a5c8b8 100644 --- a/src/messages/MOSDSubOp.h +++ b/src/messages/MOSDSubOp.h @@ -181,6 +181,7 @@ public: void finish_decode() { } virtual void encode_payload(uint64_t features) { + header.version = HEAD_VERSION; ::encode(map_epoch, payload); ::encode(reqid, payload); ::encode(pgid.pgid, payload);