void object_copy_data_t::encode(bufferlist& bl, uint64_t features) const
{
- ENCODE_START(7, 5, bl);
+ ENCODE_START(8, 5, bl);
encode(size, bl);
encode(mtime, bl);
encode(attrs, bl);
encode(reqids, bl);
encode(truncate_seq, bl);
encode(truncate_size, bl);
+ encode(reqid_return_codes, bl);
ENCODE_FINISH(bl);
}
decode(truncate_seq, bl);
decode(truncate_size, bl);
}
+ if (struct_v >= 8) {
+ decode(reqid_return_codes, bl);
+ }
}
DECODE_FINISH(bl);
}
f->dump_unsigned("snap", *p);
f->close_section();
f->open_array_section("reqids");
+ uint32_t idx = 0;
for (auto p = reqids.begin();
p != reqids.end();
- ++p) {
+ ++idx, ++p) {
f->open_object_section("extra_reqid");
f->dump_stream("reqid") << p->first;
f->dump_stream("user_version") << p->second;
+ auto it = reqid_return_codes.find(idx);
+ if (it != reqid_return_codes.end()) {
+ f->dump_int("return_code", it->second);
+ }
f->close_section();
}
f->close_section();
///< recent reqids on this object
mempool::osd_pglog::vector<pair<osd_reqid_t, version_t> > reqids;
+ ///< map reqids by index to error return code (if any)
+ mempool::osd_pglog::map<uint32_t, int> reqid_return_codes;
+
uint64_t truncate_seq;
uint64_t truncate_size;