From fa0483385b647f33ebf05eccb00d771769c72239 Mon Sep 17 00:00:00 2001 From: Sage Weil Date: Tue, 9 Jun 2015 17:55:59 -0400 Subject: [PATCH] mon/PGMap: fix pg_by_osd Broken since it was introduced in 7a04762fe09661cc2ac98a034626912ec0583116. Signed-off-by: Sage Weil --- src/mon/PGMap.cc | 32 ++++++++++++++++---------------- 1 file changed, 16 insertions(+), 16 deletions(-) diff --git a/src/mon/PGMap.cc b/src/mon/PGMap.cc index dc3a4fe6087a9..0aa837af59d72 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, -- 2.47.3