From a5d72da7996cb66b125c83cb3b213311979374b9 Mon Sep 17 00:00:00 2001 From: Brad Hubbard Date: Wed, 17 Apr 2019 16:13:27 +1000 Subject: [PATCH] osd/OSDMap: Replace get_out_osds with get_out_existing_osds Fixes: http://tracker.ceph.com/issues/39154 Signed-off-by: Brad Hubbard (cherry picked from commit adfb6a595363e2c085c6eac3001fcaa2dce007aa) Conflicts: src/osd/OSDMap.h : Resolved for get_out_existing_osds --- src/mon/OSDMonitor.cc | 2 +- src/osd/OSDMap.cc | 4 ++-- src/osd/OSDMap.h | 1 + 3 files changed, 4 insertions(+), 3 deletions(-) diff --git a/src/mon/OSDMonitor.cc b/src/mon/OSDMonitor.cc index fbad6fe579d..8f5fa217051 100644 --- a/src/mon/OSDMonitor.cc +++ b/src/mon/OSDMonitor.cc @@ -10433,7 +10433,7 @@ bool OSDMonitor::prepare_command_impl(MonOpRequestRef op, (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); } diff --git a/src/osd/OSDMap.cc b/src/osd/OSDMap.cc index 15786872b40..62a3ef32e3d 100644 --- a/src/osd/OSDMap.cc +++ b/src/osd/OSDMap.cc @@ -1391,10 +1391,10 @@ void OSDMap::get_up_osds(set& ls) const } } -void OSDMap::get_out_osds(set& ls) const +void OSDMap::get_out_existing_osds(set& 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); } } diff --git a/src/osd/OSDMap.h b/src/osd/OSDMap.h index 49bc62a365d..9d7d75bec30 100644 --- a/src/osd/OSDMap.h +++ b/src/osd/OSDMap.h @@ -714,6 +714,7 @@ public: void get_all_osds(set& ls) const; void get_up_osds(set& ls) const; void get_out_osds(set& ls) const; + void get_out_existing_osds(std::set& ls) const; unsigned get_num_pg_temp() const { return pg_temp->size(); } -- 2.47.3