From 719a918f5de2f6dbc4924e1bca41084c3788e312 Mon Sep 17 00:00:00 2001 From: xie xingguo Date: Mon, 3 Sep 2018 12:05:14 +0800 Subject: [PATCH] osd/PrimaryLogPG: is_degraded_on_async_recovery_target - restrict to async_recovery_targets only Signed-off-by: xie xingguo (cherry picked from commit 6923a4371b6757c7a2a4dfb6320e7190ce61c645) --- src/osd/PrimaryLogPG.cc | 11 +++-------- 1 file changed, 3 insertions(+), 8 deletions(-) diff --git a/src/osd/PrimaryLogPG.cc b/src/osd/PrimaryLogPG.cc index 4c0746cdffae2..abbf80477f2d8 100644 --- a/src/osd/PrimaryLogPG.cc +++ b/src/osd/PrimaryLogPG.cc @@ -678,15 +678,10 @@ bool PrimaryLogPG::is_degraded_or_backfilling_object(const hobject_t& soid) bool PrimaryLogPG::is_degraded_on_async_recovery_target(const hobject_t& soid) { - for (set::iterator i = acting_recovery_backfill.begin(); - i != acting_recovery_backfill.end(); - ++i) { - if (*i == get_primary()) continue; - pg_shard_t peer = *i; - auto peer_missing_entry = peer_missing.find(peer); + for (auto &i: async_recovery_targets) { + auto peer_missing_entry = peer_missing.find(i); if (peer_missing_entry != peer_missing.end() && - peer_missing_entry->second.get_items().count(soid) && - async_recovery_targets.count(peer)) { + peer_missing_entry->second.get_items().count(soid)) { dout(30) << __func__ << " " << soid << dendl; return true; } -- 2.47.3