From: Kefu Chai Date: Fri, 24 Feb 2017 12:38:03 +0000 (+0800) Subject: mon: pass const variables by const ref not pointer X-Git-Tag: v12.0.2~256^2~19 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=454da5e7b24c3e8bc4b0e61ca4460fdcc90d5168;p=ceph.git mon: pass const variables by const ref not pointer * PGMapUpdater::check_down_pgs(): pass a const reference to pgmap instead of a pointer * PGMapUpdater::register_new_pgs(): pass a const reference to pgmap instead of a pointer Signed-off-by: Kefu Chai --- diff --git a/src/mgr/ClusterState.cc b/src/mgr/ClusterState.cc index c689eb310a7..0e224adadcb 100644 --- a/src/mgr/ClusterState.cc +++ b/src/mgr/ClusterState.cc @@ -100,13 +100,13 @@ void ClusterState::notify_osdmap(const OSDMap &osd_map) PGMap::Incremental pending_inc; pending_inc.version = pg_map.version + 1; // to make apply_incremental happy - PGMapUpdater::update_creating_pgs(osd_map, &pg_map, &pending_inc); - PGMapUpdater::register_new_pgs(osd_map, &pg_map, &pending_inc); + PGMapUpdater::update_creating_pgs(osd_map, pg_map, &pending_inc); + PGMapUpdater::register_new_pgs(osd_map, pg_map, &pending_inc); // brute force this for now (don't bother being clever by only // checking osds that went up/down) set need_check_down_pg_osds; - PGMapUpdater::check_down_pgs(osd_map, &pg_map, true, + PGMapUpdater::check_down_pgs(osd_map, pg_map, true, need_check_down_pg_osds, &pending_inc); pg_map.apply_incremental(g_ceph_context, pending_inc); diff --git a/src/mon/PGMap.cc b/src/mon/PGMap.cc index 539ed74c74f..ae19174e4f5 100644 --- a/src/mon/PGMap.cc +++ b/src/mon/PGMap.cc @@ -2129,12 +2129,12 @@ void PGMapUpdater::register_pg( const OSDMap &osd_map, pg_t pgid, epoch_t epoch, bool new_pool, - PGMap *pg_map, + const PGMap &pg_map, PGMap::Incremental *pending_inc) { pg_t parent; int split_bits = 0; - bool parent_found = false; + auto parent_stat = pg_map.pg_stat.end(); if (!new_pool) { parent = pgid; while (1) { @@ -2145,10 +2145,10 @@ void PGMapUpdater::register_pg( parent.set_ps(parent.ps() & ~(1<<(msb-1))); split_bits++; dout(30) << " is " << pgid << " parent " << parent << " ?" << dendl; - if (pg_map->pg_stat.count(parent) && - pg_map->pg_stat[parent].state != PG_STATE_CREATING) { + parent_stat = pg_map.pg_stat.find(parent); + if (parent_stat != pg_map.pg_stat.end() && + parent_stat->second.state != PG_STATE_CREATING) { dout(10) << " parent is " << parent << dendl; - parent_found = true; break; } } @@ -2161,8 +2161,8 @@ void PGMapUpdater::register_pg( stats.parent_split_bits = split_bits; stats.mapping_epoch = epoch; - if (parent_found) { - pg_stat_t &ps = pg_map->pg_stat[parent]; + if (parent_stat != pg_map.pg_stat.end()) { + const pg_stat_t &ps = parent_stat->second; stats.last_fresh = ps.last_fresh; stats.last_active = ps.last_active; stats.last_change = ps.last_change; @@ -2213,12 +2213,12 @@ void PGMapUpdater::register_pg( void PGMapUpdater::register_new_pgs( const OSDMap &osd_map, - PGMap *pg_map, + const PGMap &pg_map, PGMap::Incremental *pending_inc) { epoch_t epoch = osd_map.get_epoch(); dout(10) << __func__ << " checking pg pools for osdmap epoch " << epoch - << ", last_pg_scan " << pg_map->last_pg_scan << dendl; + << ", last_pg_scan " << pg_map.last_pg_scan << dendl; int created = 0; const auto &pools = osd_map.get_pools(); @@ -2231,7 +2231,7 @@ void PGMapUpdater::register_new_pgs( if (ruleno < 0 || !osd_map.crush->rule_exists(ruleno)) continue; - if (pool.get_last_change() <= pg_map->last_pg_scan || + if (pool.get_last_change() <= pg_map.last_pg_scan || pool.get_last_change() <= pending_inc->pg_scan) { dout(10) << " no change in pool " << poolid << " " << pool << dendl; continue; @@ -2241,11 +2241,11 @@ void PGMapUpdater::register_new_pgs( << " " << pool << dendl; // first pgs in this pool - bool new_pool = pg_map->pg_pool_sum.count(poolid) == 0; + bool new_pool = pg_map.pg_pool_sum.count(poolid) == 0; for (ps_t ps = 0; ps < pool.get_pg_num(); ps++) { pg_t pgid(ps, poolid, -1); - if (pg_map->pg_stat.count(pgid)) { + if (pg_map.pg_stat.count(pgid)) { dout(20) << "register_new_pgs have " << pgid << dendl; continue; } @@ -2256,7 +2256,7 @@ void PGMapUpdater::register_new_pgs( } int removed = 0; - for (const auto &p : pg_map->creating_pgs) { + for (const auto &p : pg_map.creating_pgs) { if (p.preferred() >= 0) { dout(20) << " removing creating_pg " << p << " because it is localized and obsolete" << dendl; @@ -2272,7 +2272,7 @@ void PGMapUpdater::register_new_pgs( } // deleted pools? - for (const auto &p : pg_map->pg_stat) { + for (const auto &p : pg_map.pg_stat) { if (!osd_map.have_pg_pool(p.first.pool())) { dout(20) << " removing pg_stat " << p.first << " because " << "containing pool deleted" << dendl; @@ -2296,22 +2296,22 @@ void PGMapUpdater::register_new_pgs( void PGMapUpdater::update_creating_pgs( const OSDMap &osd_map, - PGMap *pg_map, + const PGMap &pg_map, PGMap::Incremental *pending_inc) { - dout(10) << __func__ << " to " << pg_map->creating_pgs.size() + dout(10) << __func__ << " to " << pg_map.creating_pgs.size() << " pgs, osdmap epoch " << osd_map.get_epoch() << dendl; unsigned changed = 0; - for (set::const_iterator p = pg_map->creating_pgs.begin(); - p != pg_map->creating_pgs.end(); + for (set::const_iterator p = pg_map.creating_pgs.begin(); + p != pg_map.creating_pgs.end(); ++p) { pg_t pgid = *p; pg_t on = pgid; ceph::unordered_map::const_iterator q = - pg_map->pg_stat.find(pgid); - assert(q != pg_map->pg_stat.end()); + pg_map.pg_stat.find(pgid); + assert(q != pg_map.pg_stat.end()); const pg_stat_t *s = &q->second; if (s->parent_split_bits) @@ -2401,7 +2401,7 @@ static void _try_mark_pg_stale( void PGMapUpdater::check_down_pgs( const OSDMap &osdmap, - const PGMap *pg_map, + const PGMap &pg_map, bool check_all, const set& need_check_down_pg_osds, PGMap::Incremental *pending_inc) @@ -2414,18 +2414,18 @@ void PGMapUpdater::check_down_pgs( } if (check_all) { - for (const auto& p : pg_map->pg_stat) { + for (const auto& p : pg_map.pg_stat) { _try_mark_pg_stale(osdmap, p.first, p.second, pending_inc); } } else { for (auto osd : need_check_down_pg_osds) { if (osdmap.is_down(osd)) { - auto p = pg_map->pg_by_osd.find(osd); - if (p == pg_map->pg_by_osd.end()) { + auto p = pg_map.pg_by_osd.find(osd); + if (p == pg_map.pg_by_osd.end()) { continue; } for (auto pgid : p->second) { - const pg_stat_t &stat = pg_map->pg_stat.at(pgid); + const pg_stat_t &stat = pg_map.pg_stat.at(pgid); assert(stat.acting_primary == osd); _try_mark_pg_stale(osdmap, pgid, stat, pending_inc); } diff --git a/src/mon/PGMap.h b/src/mon/PGMap.h index ad356506f31..14802e7ea73 100644 --- a/src/mon/PGMap.h +++ b/src/mon/PGMap.h @@ -401,7 +401,7 @@ public: */ static void register_new_pgs( const OSDMap &osd_map, - PGMap *pg_map, + const PGMap &pg_map, PGMap::Incremental *pending_inc); /** @@ -409,19 +409,20 @@ public: */ static void update_creating_pgs( const OSDMap &osd_map, - PGMap *pg_map, + const PGMap &pg_map, PGMap::Incremental *pending_inc); static void register_pg( const OSDMap &osd_map, pg_t pgid, epoch_t epoch, bool new_pool, - PGMap *pg_map, + const PGMap &pg_map, PGMap::Incremental *pending_inc); + // mark pg's state stale if its acting primary osd is down static void check_down_pgs( const OSDMap &osd_map, - const PGMap *pg_map, + const PGMap &pg_map, bool check_all, const set& need_check_down_pg_osds, PGMap::Incremental *pending_inc); diff --git a/src/mon/PGMonitor.cc b/src/mon/PGMonitor.cc index 10fa3af8114..8d050e61eae 100644 --- a/src/mon/PGMonitor.cc +++ b/src/mon/PGMonitor.cc @@ -883,10 +883,10 @@ void PGMonitor::check_osd_map(epoch_t epoch) const OSDMap& osdmap = mon->osdmon()->osdmap; assert(pg_map.last_osdmap_epoch < epoch); pending_inc.osdmap_epoch = epoch; - PGMapUpdater::update_creating_pgs(osdmap, &pg_map, &pending_inc); - PGMapUpdater::register_new_pgs(osdmap, &pg_map, &pending_inc); + PGMapUpdater::update_creating_pgs(osdmap, pg_map, &pending_inc); + PGMapUpdater::register_new_pgs(osdmap, pg_map, &pending_inc); - PGMapUpdater::check_down_pgs(osdmap, &pg_map, check_all_pgs, + PGMapUpdater::check_down_pgs(osdmap, pg_map, check_all_pgs, need_check_down_pg_osds, &pending_inc); check_all_pgs = false; @@ -1337,7 +1337,7 @@ bool PGMonitor::prepare_command(MonOpRequestRef op) pgid, epoch, true, - &pg_map, + pg_map, &pending_inc); } ss << "pg " << pgidstr << " now creating, ok";