From 92910a953513fafced00548943b6b8777721f852 Mon Sep 17 00:00:00 2001 From: kungf Date: Mon, 11 Dec 2017 11:00:18 +0800 Subject: [PATCH] osd: reduce all_info map find to get primary Signed-off-by: kungf --- src/osd/PG.cc | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/src/osd/PG.cc b/src/osd/PG.cc index 249d00548ea..7f652748c51 100644 --- a/src/osd/PG.cc +++ b/src/osd/PG.cc @@ -1213,13 +1213,12 @@ void PG::calc_replicated_acting( pg_shard_t auth_log_shard_id = auth_log_shard->first; // select primary - map::const_iterator primary; + map::const_iterator primary = all_info.find(up_primary); if (up.size() && - !all_info.find(up_primary)->second.is_incomplete() && - all_info.find(up_primary)->second.last_update >= + !primary->second.is_incomplete() && + primary->second.last_update >= auth_log_shard->second.log_tail) { ss << "up_primary: " << up_primary << ") selected as primary" << std::endl; - primary = all_info.find(up_primary); // prefer up[0], all thing being equal } else { assert(!auth_log_shard->second.is_incomplete()); ss << "up[0] needs backfill, osd." << auth_log_shard_id -- 2.47.3