Fixes: http://tracker.ceph.com/issues/39154
Signed-off-by: Brad Hubbard <bhubbard@redhat.com>
(cherry picked from commit
adfb6a595363e2c085c6eac3001fcaa2dce007aa)
Conflicts:
src/osd/OSDMap.h - Trivial resolution - no std::
(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(set<int32_t>& ls) const;
void get_up_osds(set<int32_t>& ls) const;
- void get_out_osds(set<int32_t>& ls) const;
+ void get_out_existing_osds(set<int32_t>& ls) const;
unsigned get_num_pg_temp() const {
return pg_temp->size();
}