std::vector<PGRef> pgs;
_get_pgs(&pgs);
for (auto& pg : pgs) {
- if (pg->is_primary()) {
- std::scoped_lock l{*pg};
- pg->set_dynamic_perf_stats_queries(supported_queries);
- }
+ std::scoped_lock l{*pg};
+ pg->set_dynamic_perf_stats_queries(supported_queries);
}
}
_get_pgs(&pgs);
DynamicPerfStats dps;
for (auto& pg : pgs) {
- if (pg->is_primary()) {
- // m_perf_queries can be modified only in set_perf_queries by mgr client
- // request, and it is protected by by mgr client's lock, which is held
- // when set_perf_queries/get_perf_reports are called, so we may not hold
- // m_perf_queries_lock here.
- DynamicPerfStats pg_dps(m_perf_queries);
- pg->lock();
- pg->get_dynamic_perf_stats(&pg_dps);
- pg->unlock();
- dps.merge(pg_dps);
- }
+ // m_perf_queries can be modified only in set_perf_queries by mgr client
+ // request, and it is protected by by mgr client's lock, which is held
+ // when set_perf_queries/get_perf_reports are called, so we may not hold
+ // m_perf_queries_lock here.
+ DynamicPerfStats pg_dps(m_perf_queries);
+ pg->lock();
+ pg->get_dynamic_perf_stats(&pg_dps);
+ pg->unlock();
+ dps.merge(pg_dps);
}
dps.add_to_reports(m_perf_limits, reports);
dout(20) << "reports for " << reports->size() << " queries" << dendl;