}
}
-void PGMap::stat_pg_add(const pg_t &pgid, const pg_stat_t &s, bool sumonly,
+void PGMap::stat_pg_add(const pg_t &pgid, const pg_stat_t &s, bool nocreating,
bool sameosds)
{
pg_pool_sum[pgid.pool()].add(s);
pg_sum.add(s);
- if (sumonly)
- return;
-
num_pg++;
num_pg_by_state[s.state]++;
- if (s.state & PG_STATE_CREATING) {
- creating_pgs.insert(pgid);
- if (s.acting_primary >= 0)
- creating_pgs_by_osd[s.acting_primary].insert(pgid);
+ if (!nocreating) {
+ if (s.state & PG_STATE_CREATING) {
+ creating_pgs.insert(pgid);
+ if (s.acting_primary >= 0)
+ creating_pgs_by_osd[s.acting_primary].insert(pgid);
+ }
}
if (sameosds)
pg_by_osd[*p].insert(pgid);
}
-void PGMap::stat_pg_sub(const pg_t &pgid, const pg_stat_t &s, bool sumonly,
+void PGMap::stat_pg_sub(const pg_t &pgid, const pg_stat_t &s, bool nocreating,
bool sameosds)
{
pool_stat_t& ps = pg_pool_sum[pgid.pool()];
pg_pool_sum.erase(pgid.pool());
pg_sum.sub(s);
- if (sumonly)
- return;
-
num_pg--;
if (--num_pg_by_state[s.state] == 0)
num_pg_by_state.erase(s.state);
- if (s.state & PG_STATE_CREATING) {
- creating_pgs.erase(pgid);
- if (s.acting_primary >= 0) {
- creating_pgs_by_osd[s.acting_primary].erase(pgid);
- if (creating_pgs_by_osd[s.acting_primary].size() == 0)
- creating_pgs_by_osd.erase(s.acting_primary);
+ if (!nocreating) {
+ if (s.state & PG_STATE_CREATING) {
+ creating_pgs.erase(pgid);
+ if (s.acting_primary >= 0) {
+ creating_pgs_by_osd[s.acting_primary].erase(pgid);
+ if (creating_pgs_by_osd[s.acting_primary].size() == 0)
+ creating_pgs_by_osd.erase(s.acting_primary);
+ }
}
}
void redo_full_sets();
void register_nearfull_status(int osd, const osd_stat_t& s);
void calc_stats();
- void stat_pg_add(const pg_t &pgid, const pg_stat_t &s, bool sumonly=false,
+ void stat_pg_add(const pg_t &pgid, const pg_stat_t &s, bool nocreating=false,
bool sameosds=false);
- void stat_pg_sub(const pg_t &pgid, const pg_stat_t &s, bool sumonly=false,
+ void stat_pg_sub(const pg_t &pgid, const pg_stat_t &s, bool nocreating=false,
bool sameosds=false);
void stat_pg_update(const pg_t pgid, pg_stat_t &prev, bufferlist::iterator& blp);
void stat_osd_add(const osd_stat_t &s);