From: Yan, Zheng Date: Wed, 17 May 2017 08:40:22 +0000 (+0800) Subject: mon/MDSMonitor: respect mds_standby_for_rank config X-Git-Tag: v12.1.1~65^2~19^2 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=e6be93355e9ad01d8259817752cdd937ca091d6f;p=ceph.git mon/MDSMonitor: respect mds_standby_for_rank config Signed-off-by: "Yan, Zheng" --- diff --git a/src/mds/FSMap.cc b/src/mds/FSMap.cc index 35c8093a380a..5d04bc65fff9 100644 --- a/src/mds/FSMap.cc +++ b/src/mds/FSMap.cc @@ -669,8 +669,8 @@ mds_gid_t FSMap::find_standby_for(mds_role_t role, const std::string& name) cons return result; } -mds_gid_t FSMap::find_unused(fs_cluster_id_t fscid, - bool force_standby_active) const { +mds_gid_t FSMap::find_unused_for(mds_role_t role, + bool force_standby_active) const { for (const auto &i : standby_daemons) { const auto &gid = i.first; const auto &info = i.second; @@ -680,7 +680,10 @@ mds_gid_t FSMap::find_unused(fs_cluster_id_t fscid, continue; if (info.standby_for_fscid != FS_CLUSTER_ID_NONE && - info.standby_for_fscid != fscid) + info.standby_for_fscid != role.fscid) + continue; + if (info.standby_for_rank != MDS_RANK_NONE && + info.standby_for_rank != role.rank) continue; // To be considered 'unused' a daemon must either not @@ -699,7 +702,7 @@ mds_gid_t FSMap::find_replacement_for(mds_role_t role, const std::string& name, if (standby) return standby; else - return find_unused(role.fscid, force_standby_active); + return find_unused_for(role, force_standby_active); } void FSMap::sanity() const diff --git a/src/mds/FSMap.h b/src/mds/FSMap.h index 881281edca17..3d389c48885b 100644 --- a/src/mds/FSMap.h +++ b/src/mds/FSMap.h @@ -468,7 +468,7 @@ public: mds_gid_t find_standby_for(mds_role_t mds, const std::string& name) const; - mds_gid_t find_unused(fs_cluster_id_t fscid, bool force_standby_active) const; + mds_gid_t find_unused_for(mds_role_t mds, bool force_standby_active) const; mds_gid_t find_replacement_for(mds_role_t mds, const std::string& name, bool force_standby_active) const;