]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
messages/MOSDSubOp: Make encode_payload can be reentrant 12654/head
authorHaomai Wang <haomai@xsky.com>
Sat, 24 Dec 2016 03:33:34 +0000 (11:33 +0800)
committerHaomai Wang <haomai@xsky.com>
Sat, 24 Dec 2016 03:33:34 +0000 (11:33 +0800)
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 <haomai@xsky.com>
src/messages/MOSDSubOp.h

index 82b866dc80316cf77dce3db83a259e89a724787e..615e8a5c8b8996eddc2634721cd18e4f963ae020 100644 (file)
@@ -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);