decode(from, p);
decode(updated_hit_set_history, p);
- if (header.version >= 3) {
- decode(min_last_complete_ondisk, p);
- } else {
- /* This field used to mean pg_roll_foward_to, but ReplicatedBackend
- * simply assumes that we're rolling foward to version. */
- eversion_t pg_roll_forward_to;
- decode(pg_roll_forward_to, p);
- }
+ ceph_assert(header.version >= 3);
+ decode(min_last_complete_ondisk, p);
final_decode_needed = false;
}
set_tid(rtid);
}
- void set_rollback_to(const eversion_t &rollback_to) {
- header.version = 2;
- min_last_complete_ondisk = rollback_to;
- }
private:
~MOSDRepOp() final {}
out << " " << poid << " v " << version;
if (updated_hit_set_history)
out << ", has_updated_hit_set_history";
- if (header.version < 3) {
- out << ", rollback_to(legacy)=" << min_last_complete_ondisk;
- } else {
- out << ", mlcod=" << min_last_complete_ondisk;
- }
+ out << ", mlcod=" << min_last_complete_ondisk;
}
out << ")";
}
wr->pg_trim_to = pg_trim_to;
- if (HAVE_FEATURE(parent->min_peer_features(), OSD_REPOP_MLCOD)) {
- wr->min_last_complete_ondisk = min_last_complete_ondisk;
- } else {
- /* Some replicas need this field to be at_version. New replicas
- * will ignore it */
- wr->set_rollback_to(at_version);
- }
+ // this feature is from 2019 (6f12bf27cb91), assume present
+ ceph_assert(HAVE_FEATURE(parent->min_peer_features(), OSD_REPOP_MLCOD));
+ wr->min_last_complete_ondisk = min_last_complete_ondisk;
wr->new_temp_oid = new_temp_oid;
wr->discard_temp_oid = discard_temp_oid;