From 08d4596d130a07ff002506da409c59ad3d43a383 Mon Sep 17 00:00:00 2001 From: junxiang Mu <1948535941@qq.com> Date: Wed, 26 Jun 2024 17:03:04 +0800 Subject: [PATCH] mds/QuiesceDbManager: get requested state of members before iterating through each quiesce set members Fixes: https://tracker.ceph.com/issues/66551 Signed-off-by: junxiang Mu <1948535941@qq.com> (cherry picked from commit afb531019f7f68f276a50382c900f385ab5d5de9) --- src/mds/QuiesceDbManager.cc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/mds/QuiesceDbManager.cc b/src/mds/QuiesceDbManager.cc index 3629e0190ee..12c83634e54 100644 --- a/src/mds/QuiesceDbManager.cc +++ b/src/mds/QuiesceDbManager.cc @@ -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; -- 2.39.5