From: Sage Weil Date: Tue, 9 Jun 2015 21:55:59 +0000 (-0400) Subject: mon/PGMap: fix pg_by_osd X-Git-Tag: v9.0.3~200^2~2 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=fa0483385b647f33ebf05eccb00d771769c72239;p=ceph.git mon/PGMap: fix pg_by_osd Broken since it was introduced in 7a04762fe09661cc2ac98a034626912ec0583116. Signed-off-by: Sage Weil --- diff --git a/src/mon/PGMap.cc b/src/mon/PGMap.cc index dc3a4fe6087a..0aa837af59d7 100644 --- a/src/mon/PGMap.cc +++ b/src/mon/PGMap.cc @@ -486,18 +486,10 @@ void PGMap::stat_pg_add(const pg_t &pgid, const pg_stat_t &s, bool sumonly, ++blocked_by_sum[*p]; } - for (vector::const_iterator p = s.acting.begin(); p != s.acting.end(); ++p) { - set& oset = pg_by_osd[*p]; - oset.erase(pgid); - if (oset.empty()) - pg_by_osd.erase(*p); - } - for (vector::const_iterator p = s.up.begin(); p != s.up.end(); ++p) { - set& oset = pg_by_osd[*p]; - oset.erase(pgid); - if (oset.empty()) - pg_by_osd.erase(*p); - } + for (vector::const_iterator p = s.acting.begin(); p != s.acting.end(); ++p) + pg_by_osd[*p].insert(pgid); + for (vector::const_iterator p = s.up.begin(); p != s.up.end(); ++p) + pg_by_osd[*p].insert(pgid); } void PGMap::stat_pg_sub(const pg_t &pgid, const pg_stat_t &s, bool sumonly, @@ -538,10 +530,18 @@ void PGMap::stat_pg_sub(const pg_t &pgid, const pg_stat_t &s, bool sumonly, blocked_by_sum.erase(q); } - for (vector::const_iterator p = s.acting.begin(); p != s.acting.end(); ++p) - pg_by_osd[*p].insert(pgid); - for (vector::const_iterator p = s.up.begin(); p != s.up.end(); ++p) - pg_by_osd[*p].insert(pgid); + for (vector::const_iterator p = s.acting.begin(); p != s.acting.end(); ++p) { + set& oset = pg_by_osd[*p]; + oset.erase(pgid); + if (oset.empty()) + pg_by_osd.erase(*p); + } + for (vector::const_iterator p = s.up.begin(); p != s.up.end(); ++p) { + set& oset = pg_by_osd[*p]; + oset.erase(pgid); + if (oset.empty()) + pg_by_osd.erase(*p); + } } void PGMap::stat_pg_update(const pg_t pgid, pg_stat_t& s,