]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commitdiff
osd: get _get_pgs() and _get_pgids()
authorSage Weil <sage@redhat.com>
Tue, 6 Feb 2018 16:50:31 +0000 (10:50 -0600)
committerSage Weil <sage@redhat.com>
Wed, 4 Apr 2018 13:26:52 +0000 (08:26 -0500)
Signed-off-by: Sage Weil <sage@redhat.com>
src/osd/OSD.cc
src/osd/OSD.h

index d969801d9b21138b30a06e8b34f25e2bb1a96f34..6e1bfbfcdb228107695ab3c3d94d68279990dc37 100644 (file)
@@ -3853,6 +3853,27 @@ PG* OSD::_make_pg(
   return pg;
 }
 
+void OSD::_get_pgs(vector<PGRef> *v)
+{
+  v->clear();
+  RWLock::RLocker l(pg_map_lock);
+  for (auto& i : pg_map) {
+    if (!i.second->is_deleted()) {
+      v->push_back(i.second);
+    }
+  }
+}
+
+void OSD::_get_pgids(vector<spg_t> *v)
+{
+  v->clear();
+  RWLock::RLocker l(pg_map_lock);
+  for (auto& i : pg_map) {
+    if (!i.second->is_deleted()) {
+      v->push_back(i.first);
+    }
+  }
+}
 
 PGRef OSD::_lookup_pg(spg_t pgid)
 {
index e59fec0fddb1ffe260dbbf40aff08babd4d343e9..55f64dee1d507790ed61281168c2db2f93cd5618 100644 (file)
@@ -1853,6 +1853,9 @@ protected:
   PGRef _lookup_pg(spg_t pgid);
   PG   *_lookup_lock_pg(spg_t pgid);
 
+  void _get_pgs(vector<PGRef> *v);
+  void _get_pgids(vector<spg_t> *v);
+
 public:
   PG   *lookup_lock_pg(spg_t pgid);