Fixes: http://tracker.ceph.com/issues/39154
Signed-off-by: Brad Hubbard <bhubbard@redhat.com>
(idvec[0] == "any" || idvec[0] == "all" || idvec[0] == "*")) {
if (prefix == "osd in") {
// touch out osds only
- osdmap.get_out_osds(osds);
+ osdmap.get_out_existing_osds(osds);
} else {
osdmap.get_all_osds(osds);
}
}
}
-void OSDMap::get_out_osds(set<int32_t>& ls) const
+void OSDMap::get_out_existing_osds(set<int32_t>& ls) const
{
for (int i = 0; i < max_osd; i++) {
- if (is_out(i))
+ if (exists(i) && get_weight(i) == CEPH_OSD_OUT)
ls.insert(i);
}
}
void get_all_osds(std::set<int32_t>& ls) const;
void get_up_osds(std::set<int32_t>& ls) const;
- void get_out_osds(std::set<int32_t>& ls) const;
+ void get_out_existing_osds(std::set<int32_t>& ls) const;
unsigned get_num_pg_temp() const {
return pg_temp->size();
}