ack->pg_stat[pgid] = make_pair(p->second.reported_seq, p->second.reported_epoch);
if (pg_map.pg_stat.count(pgid) &&
- (pg_map.pg_stat[pgid].reported_seq > p->second.reported_seq ||
- pg_map.pg_stat[pgid].reported_epoch > p->second.reported_epoch)) {
+ pg_map.pg_stat[pgid].get_version_pair() > p->second.get_version_pair()) {
dout(15) << " had " << pgid << " from " << pg_map.pg_stat[pgid].reported_epoch << ":"
<< pg_map.pg_stat[pgid].reported_seq << dendl;
continue;
}
if (pending_inc.pg_stat_updates.count(pgid) &&
- (pending_inc.pg_stat_updates[pgid].reported_seq > p->second.reported_seq ||
- pending_inc.pg_stat_updates[pgid].reported_epoch > p->second.reported_epoch)) {
+ pending_inc.pg_stat_updates[pgid].get_version_pair() > p->second.get_version_pair()) {
dout(15) << " had " << pgid << " from " << pending_inc.pg_stat_updates[pgid].reported_epoch << ":"
<< pending_inc.pg_stat_updates[pgid].reported_seq << " (pending)" << dendl;
continue;
}
}
+ pair<epoch_t, version_t> get_version_pair() const {
+ return make_pair(reported_epoch, reported_seq);
+ }
+
void add(const pg_stat_t& o) {
stats.add(o.stats);
log_size += o.log_size;