int64_t poolid = -ENOENT;
string pool_name;
PyFormatter f;
- cluster_state.with_pgmap([&](const PGMap& pg_map) {
- return cluster_state.with_osdmap([&](const OSDMap& osdmap) {
+ cluster_state.with_osdmap_and_pgmap([&](const OSDMap& osdmap, const PGMap& pg_map) {
f.open_array_section("pool_stats");
for (auto &p : osdmap.get_pools()) {
poolid = p.first;
pg_map.dump_pool_stats_and_io_rate(poolid, osdmap, &f, nullptr);
}
f.close_section();
- });
});
return f.get();
} else if (what == "health" || what == "mon_status") {
void ClusterState::notify_osdmap(const OSDMap &osd_map)
{
- std::lock_guard l(lock);
+ assert(ceph_mutex_is_locked(lock));
pending_inc.stamp = ceph_clock_now();
pending_inc.version = pg_map.version + 1; // to make apply_incremental happy
lock.Lock();
// Populate PGs in ClusterState
- objecter->with_osdmap([this](const OSDMap &osd_map) {
+ cluster_state.with_osdmap_and_pgmap([this](const OSDMap &osd_map,
+ const PGMap& pg_map) {
cluster_state.notify_osdmap(osd_map);
});
* see if they have changed (service restart), and if so
* reload the metadata.
*/
- objecter->with_osdmap([this, &names_exist](const OSDMap &osd_map) {
+ cluster_state.with_osdmap_and_pgmap([this, &names_exist](const OSDMap &osd_map,
+ const PGMap &pg_map) {
for (int osd_id = 0; osd_id < osd_map.get_max_osd(); ++osd_id) {
if (!osd_map.exists(osd_id)) {
continue;