From: kungf Date: Mon, 11 Dec 2017 03:00:18 +0000 (+0800) Subject: osd: reduce all_info map find to get primary X-Git-Tag: v13.0.2~789^2 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=refs%2Fpull%2F19425%2Fhead;p=ceph.git osd: reduce all_info map find to get primary Signed-off-by: kungf --- 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