class MOSDPGUpdateLogMissingReply : public MOSDFastDispatchOp {
- static const int HEAD_VERSION = 2;
+ static const int HEAD_VERSION = 3;
static const int COMPAT_VERSION = 1;
spg_t pgid;
shard_id_t from;
ceph_tid_t rep_tid;
+ // piggybacked osd state
+ eversion_t last_complete_ondisk;
epoch_t get_epoch() const { return map_epoch; }
spg_t get_pgid() const { return pgid; }
shard_id_t from,
epoch_t epoch,
epoch_t min_epoch,
- ceph_tid_t rep_tid)
+ ceph_tid_t rep_tid,
+ eversion_t last_complete_ondisk)
: MOSDFastDispatchOp(
MSG_OSD_PG_UPDATE_LOG_MISSING_REPLY,
HEAD_VERSION,
min_epoch(min_epoch),
pgid(pgid),
from(from),
- rep_tid(rep_tid)
+ rep_tid(rep_tid),
+ last_complete_ondisk(last_complete_ondisk)
{}
private:
void print(ostream& out) const override {
out << "pg_update_log_missing_reply(" << pgid << " epoch " << map_epoch
<< "/" << min_epoch
- << " rep_tid " << rep_tid << ")";
+ << " rep_tid " << rep_tid
+ << " lcod " << last_complete_ondisk << ")";
}
void encode_payload(uint64_t features) override {
::encode(from, payload);
::encode(rep_tid, payload);
::encode(min_epoch, payload);
+ ::encode(last_complete_ondisk, payload);
}
void decode_payload() override {
bufferlist::iterator p = payload.begin();
} else {
min_epoch = map_epoch;
}
+ if (header.version >= 3) {
+ ::decode(last_complete_ondisk, p);
+ }
}
};