struct MOSDRepScrubMap : public MOSDFastDispatchOp {
- static const int HEAD_VERSION = 1;
+ static const int HEAD_VERSION = 2;
static const int COMPAT_VERSION = 1;
spg_t pgid; // primary spg_t
epoch_t map_epoch = 0;
pg_shard_t from; // whose scrubmap this is
bufferlist scrub_map_bl;
+ bool preempted = false;
epoch_t get_map_epoch() const override {
return map_epoch;
const char *get_type_name() const { return "rep_scrubmap"; }
void print(ostream& out) const {
out << "rep_scrubmap(" << pgid << " e" << map_epoch
- << " from shard " << from << ")";
+ << " from shard " << from
+ << (preempted ? " PREEMPTED":"") << ")";
}
void encode_payload(uint64_t features) {
::encode(pgid, payload);
::encode(map_epoch, payload);
::encode(from, payload);
+ ::encode(preempted, payload);
}
void decode_payload() {
bufferlist::iterator p = payload.begin();
::decode(pgid, p);
::decode(map_epoch, p);
::decode(from, p);
+ if (header.version >= 2) {
+ ::decode(preempted, p);
+ }
}
};