osd: get _get_pgs() and _get_pgids()

Signed-off-by: Sage Weil <sage@redhat.com>
This commit is contained in:
Sage Weil 2018-02-06 10:50:31 -06:00
parent c4960f03a2
commit bffa62233e
2 changed files with 24 additions and 0 deletions

View 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)
{

View 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);