From: Samuel Just Date: Thu, 11 Jul 2013 01:29:54 +0000 (-0700) Subject: PGMonitor: fix stat comparison in prepare_pg_stats X-Git-Tag: v0.67-rc1~115 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=1ad2127ff5e9f85c6ad62edfeeadb9e497289785;p=ceph.git PGMonitor: fix stat comparison in prepare_pg_stats Signed-off-by: Samuel Just Reviewed-by: Sage Weil --- diff --git a/src/mon/PGMonitor.cc b/src/mon/PGMonitor.cc index 6c9effccd6e6..0e6e1749725e 100644 --- a/src/mon/PGMonitor.cc +++ b/src/mon/PGMonitor.cc @@ -736,15 +736,13 @@ bool PGMonitor::prepare_pg_stats(MPGStats *stats) 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; diff --git a/src/osd/osd_types.h b/src/osd/osd_types.h index 157098f32c42..e3f46f9d601e 100644 --- a/src/osd/osd_types.h +++ b/src/osd/osd_types.h @@ -962,6 +962,10 @@ struct pg_stat_t { } } + pair 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;