From: Yan, Zheng Date: Mon, 16 Jan 2017 08:27:39 +0000 (+0800) Subject: mds: fix MDSMap::get_recovery_mds_set() X-Git-Tag: v12.0.0~43^2~11 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=3d6cc4adfd50895cffab41ec1fbc738841f36fb8;p=ceph.git mds: fix MDSMap::get_recovery_mds_set() The function get set of mds rank that exist. it needs to consider the damaged mds set. Signed-off-by: Yan, Zheng --- diff --git a/src/mds/MDSMap.h b/src/mds/MDSMap.h index f76bdfa5ca3..19f4af4c8db 100644 --- a/src/mds/MDSMap.h +++ b/src/mds/MDSMap.h @@ -414,11 +414,11 @@ public: } void get_recovery_mds_set(std::set& s) const { s = failed; - for (std::map::const_iterator p = mds_info.begin(); - p != mds_info.end(); - ++p) - if (p->second.state >= STATE_REPLAY && p->second.state <= STATE_STOPPING) - s.insert(p->second.rank); + for (const auto& p : damaged) + s.insert(p); + for (const auto& p : mds_info) + if (p.second.state >= STATE_REPLAY && p.second.state <= STATE_STOPPING) + s.insert(p.second.rank); } void