::decode(op, p);
if (header.version >= 3) {
::decode(min_epoch, p);
+ decode_trace(p);
} else {
min_epoch = map_epoch;
}
::encode(map_epoch, payload);
::encode(op, payload, features);
::encode(min_epoch, payload);
+ encode_trace(payload, features);
}
const char *get_type_name() const override { return "MOSDECSubOpRead"; }
::decode(op, p);
if (header.version >= 2) {
::decode(min_epoch, p);
+ decode_trace(p);
} else {
min_epoch = map_epoch;
}
::encode(map_epoch, payload);
::encode(op, payload);
::encode(min_epoch, payload);
+ encode_trace(payload, features);
}
const char *get_type_name() const override { return "MOSDECSubOpReadReply"; }
::decode(op, p);
if (header.version >= 2) {
::decode(min_epoch, p);
+ decode_trace(p);
} else {
min_epoch = map_epoch;
}
::encode(map_epoch, payload);
::encode(op, payload);
::encode(min_epoch, payload);
+ encode_trace(payload, features);
}
const char *get_type_name() const override { return "MOSDECSubOpWrite"; }
::decode(op, p);
if (header.version >= 2) {
::decode(min_epoch, p);
+ decode_trace(p);
} else {
min_epoch = map_epoch;
}
::encode(map_epoch, payload);
::encode(op, payload);
::encode(min_epoch, payload);
+ encode_trace(payload, features);
}
const char *get_type_name() const override { return "MOSDECSubOpWriteReply"; }
::encode(osdmap_epoch, payload);
::encode(flags, payload);
::encode(reqid, payload);
+ encode_trace(payload, features);
+
+ // -- above decoded up front; below decoded post-dispatch thread --
+
::encode(client_inc, payload);
::encode(mtime, payload);
::encode(get_object_locator(), payload);
::decode(osdmap_epoch, p);
::decode(flags, p);
::decode(reqid, p);
+ decode_trace(p);
} else if (header.version == 7) {
::decode(pgid.pgid, p); // raw pgid
hobj.set_hash(pgid.pgid.ps());
class MOSDOpReply : public Message {
- static const int HEAD_VERSION = 7;
+ static const int HEAD_VERSION = 8;
static const int COMPAT_VERSION = 2;
object_t oid;
::encode(redirect, payload);
}
}
+ encode_trace(payload, features);
}
}
void decode_payload() override {
::decode(redirect, p);
}
}
+ if (header.version >= 8) {
+ decode_trace(p);
+ }
}
}
p = payload.begin();
// splitted to partial and final
::decode(map_epoch, p);
- if (header.version >= 2)
+ if (header.version >= 2) {
::decode(min_epoch, p);
- else
+ decode_trace(p);
+ } else {
min_epoch = map_epoch;
+ }
::decode(reqid, p);
::decode(pgid, p);
}
void encode_payload(uint64_t features) override {
::encode(map_epoch, payload);
- if (HAVE_FEATURE(features, SERVER_LUMINOUS))
+ if (HAVE_FEATURE(features, SERVER_LUMINOUS)) {
::encode(min_epoch, payload);
- else
+ encode_trace(payload, features);
+ } else {
header.version = 1;
+ }
::encode(reqid, payload);
::encode(pgid, payload);
::encode(poid, payload);
void decode_payload() override {
p = payload.begin();
::decode(map_epoch, p);
- if (header.version >= 2)
+ if (header.version >= 2) {
::decode(min_epoch, p);
- else
+ decode_trace(p);
+ } else {
min_epoch = map_epoch;
+ }
::decode(reqid, p);
::decode(pgid, p);
}
}
void encode_payload(uint64_t features) override {
::encode(map_epoch, payload);
- if (HAVE_FEATURE(features, SERVER_LUMINOUS))
+ if (HAVE_FEATURE(features, SERVER_LUMINOUS)) {
::encode(min_epoch, payload);
- else
+ encode_trace(payload, features);
+ } else {
header.version = 1;
+ }
::encode(reqid, payload);
::encode(pgid, payload);
::encode(ack_type, payload);