From: Sage Weil Date: Tue, 11 Feb 2014 17:31:20 +0000 (-0800) Subject: osd/OSDMap: pass pps value out from _pg_to_osds X-Git-Tag: v0.78~173^2~6 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=74951cadf789079c0c959795682abdb4edcd12fc;p=ceph.git osd/OSDMap: pass pps value out from _pg_to_osds The primary affinity code needs a seed to determine it's pseudo-random behavior. Pass pps (optionally) out of _pg_to_osds() for this purpose. Signed-off-by: Sage Weil --- diff --git a/src/osd/OSDMap.cc b/src/osd/OSDMap.cc index d48347facf1..4f621c4b0c4 100644 --- a/src/osd/OSDMap.cc +++ b/src/osd/OSDMap.cc @@ -1351,7 +1351,8 @@ void OSDMap::_remove_nonexistent_osds(const pg_pool_t& pool, } int OSDMap::_pg_to_osds(const pg_pool_t& pool, pg_t pg, - vector *osds, int *primary) const + vector *osds, int *primary, + ps_t *ppps) const { // map to osds[] ps_t pps = pool.raw_pg_to_pps(pg); // placement ps @@ -1365,6 +1366,8 @@ int OSDMap::_pg_to_osds(const pg_pool_t& pool, pg_t pg, _remove_nonexistent_osds(pool, *osds); *primary = (osds->empty() ? -1 : osds->front()); + if (ppps) + *ppps = pps; return osds->size(); } diff --git a/src/osd/OSDMap.h b/src/osd/OSDMap.h index d2e0aaee341..4b4481c88d1 100644 --- a/src/osd/OSDMap.h +++ b/src/osd/OSDMap.h @@ -555,7 +555,8 @@ public: private: /// pg -> (raw osd list) int _pg_to_osds(const pg_pool_t& pool, pg_t pg, - vector *osds, int *primary) const; + vector *osds, int *primary, + ps_t *ppps) const; void _remove_nonexistent_osds(const pg_pool_t& pool, vector& osds) const; /// pg -> (up osd list)