]> git.apps.os.sepia.ceph.com Git - ceph-ci.git/commitdiff
mds/QuiesceDbManager: get requested state of members before iterating through each...
authorjunxiang Mu <1948535941@qq.com>
Wed, 26 Jun 2024 09:03:04 +0000 (17:03 +0800)
committerXiubo Li <xiubli@redhat.com>
Tue, 30 Jul 2024 01:51:30 +0000 (09:51 +0800)
Fixes: https://tracker.ceph.com/issues/66551
Signed-off-by: junxiang Mu <1948535941@qq.com>
(cherry picked from commit afb531019f7f68f276a50382c900f385ab5d5de9)

src/mds/QuiesceDbManager.cc

index 3629e0190ee656c4dcf1fabbb2dc079894d70702..12c83634e54e274c43b3d3918f619159786b34a0 100644 (file)
@@ -1201,6 +1201,7 @@ void QuiesceDbManager::calculate_quiesce_map(QuiesceMap &map)
 
   for(auto & [set_id, set]: db.sets) {
     if (set.is_active()) {
+      auto requested = set.get_requested_member_state();
       // we only report active sets;
       for(auto & [root, member]: set.members) {
         if (member.excluded) {
@@ -1210,7 +1211,6 @@ void QuiesceDbManager::calculate_quiesce_map(QuiesceMap &map)
         // for a quiesce map, we want to report active roots as either QUIESCING or RELEASING
         // this is to make sure that clients always have a reason to report back and confirm
         // the quiesced state.
-        auto requested = set.get_requested_member_state();
         auto ttl = get_root_ttl(set, member, db_age);
         auto root_it = map.roots.try_emplace(root, QuiesceMap::RootInfo { requested, ttl }).first;