From: Sage Weil Date: Tue, 31 Jan 2017 20:03:17 +0000 (-0500) Subject: osd/OSDMapMapper: count total pgs X-Git-Tag: v12.0.1~343^2~6 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=3a072e4b2f143c7846711ba9582183d3e07e5f21;p=ceph.git osd/OSDMapMapper: count total pgs Signed-off-by: Sage Weil --- diff --git a/src/osd/OSDMapMapping.cc b/src/osd/OSDMapMapping.cc index 55cd22428f0..9edd23ebe2a 100644 --- a/src/osd/OSDMapMapping.cc +++ b/src/osd/OSDMapMapping.cc @@ -12,8 +12,10 @@ // the dimensions (pg_num and size) match up. void OSDMapMapping::_init_mappings(const OSDMap& osdmap) { + num_pgs = 0; auto q = pools.begin(); for (auto& p : osdmap.get_pools()) { + num_pgs += p.second.get_pg_num(); // drop unneeded pools while (q != pools.end() && q->first < p.first) { q = pools.erase(q); diff --git a/src/osd/OSDMapMapping.h b/src/osd/OSDMapMapping.h index cb9498c371a..95fed453f9c 100644 --- a/src/osd/OSDMapMapping.h +++ b/src/osd/OSDMapMapping.h @@ -85,6 +85,7 @@ class OSDMapMapping { std::vector> acting_rmap; // osd -> pg //unused: std::vector> up_rmap; // osd -> pg epoch_t epoch; + uint64_t num_pgs = 0; void _init_mappings(const OSDMap& osdmap); void _update_range( @@ -131,6 +132,10 @@ public: epoch_t get_epoch() const { return epoch; } + + uint64_t get_num_pgs() const { + return num_pgs; + } }; /// thread pool to calculate mapping on multiple CPUs