From 5a5a4a877548727935b88119061223e7f8e20c2b Mon Sep 17 00:00:00 2001 From: Sage Weil Date: Wed, 19 Nov 2014 16:12:28 -0800 Subject: [PATCH] osd: don't need to pass object names via ctor Calculate biginfo on the fly. Signed-off-by: Sage Weil --- src/osd/OSD.cc | 4 +--- src/osd/PG.cc | 7 ++++--- src/osd/PG.h | 3 +-- src/osd/ReplicatedPG.cc | 5 ++--- src/osd/ReplicatedPG.h | 3 +-- 5 files changed, 9 insertions(+), 13 deletions(-) diff --git a/src/osd/OSD.cc b/src/osd/OSD.cc index bd4d3374aa7f7..5eea61ac46a89 100644 --- a/src/osd/OSD.cc +++ b/src/osd/OSD.cc @@ -2509,11 +2509,9 @@ PG* OSD::_make_pg( // create PG *pg; - hobject_t logoid = make_pg_log_oid(pgid); - hobject_t infooid = make_pg_biginfo_oid(pgid); if (createmap->get_pg_type(pgid.pgid) == pg_pool_t::TYPE_REPLICATED || createmap->get_pg_type(pgid.pgid) == pg_pool_t::TYPE_ERASURE) - pg = new ReplicatedPG(&service, createmap, pool, pgid, logoid, infooid); + pg = new ReplicatedPG(&service, createmap, pool, pgid); else assert(0); diff --git a/src/osd/PG.cc b/src/osd/PG.cc index 5f25c2a3e7d27..e495d1b680b82 100644 --- a/src/osd/PG.cc +++ b/src/osd/PG.cc @@ -160,8 +160,7 @@ void PGPool::update(OSDMapRef map) } PG::PG(OSDService *o, OSDMapRef curmap, - const PGPool &_pool, spg_t p, const hobject_t& loid, - const hobject_t& ioid) : + const PGPool &_pool, spg_t p) : osd(o), cct(o->cct), osdriver(osd->store, coll_t(), OSD::make_snapmapper_oid()), @@ -183,7 +182,7 @@ PG::PG(OSDService *o, OSDMapRef curmap, info_struct_v(0), coll(p), pg_log(cct), pgmeta_oid(p.make_pgmeta_oid()), - log_oid(loid), biginfo_oid(ioid), + log_oid(OSD::make_pg_log_oid(p)), missing_loc(this), recovery_item(this), scrub_item(this), scrub_finalize_item(this), snap_trim_item(this), stat_queue_item(this), recovery_ops_active(0), @@ -2890,6 +2889,8 @@ int PG::read_info( void PG::read_state(ObjectStore *store, bufferlist &bl) { + hobject_t biginfo_oid(OSD::make_pg_biginfo_oid(pg_id)); + int r = read_info(store, coll, bl, info, past_intervals, biginfo_oid, osd->infos_oid, snap_collections, info_struct_v); assert(r >= 0); diff --git a/src/osd/PG.h b/src/osd/PG.h index e4bfb35cbf731..4d0a8df4e3cd5 100644 --- a/src/osd/PG.h +++ b/src/osd/PG.h @@ -301,7 +301,6 @@ public: } ghobject_t pgmeta_oid; hobject_t log_oid; - hobject_t biginfo_oid; class MissingLoc { map needs_recovery_map; @@ -1988,7 +1987,7 @@ public: public: PG(OSDService *o, OSDMapRef curmap, - const PGPool &pool, spg_t p, const hobject_t& loid, const hobject_t& ioid); + const PGPool &pool, spg_t p); virtual ~PG(); private: diff --git a/src/osd/ReplicatedPG.cc b/src/osd/ReplicatedPG.cc index a4e1aa6f1bdb8..09158c940b05e 100644 --- a/src/osd/ReplicatedPG.cc +++ b/src/osd/ReplicatedPG.cc @@ -1226,9 +1226,8 @@ void ReplicatedPG::calc_trim_to() } ReplicatedPG::ReplicatedPG(OSDService *o, OSDMapRef curmap, - const PGPool &_pool, spg_t p, const hobject_t& oid, - const hobject_t& ioid) : - PG(o, curmap, _pool, p, oid, ioid), + const PGPool &_pool, spg_t p) : + PG(o, curmap, _pool, p), pgbackend( PGBackend::build_pg_backend( _pool.info, curmap, this, coll_t(p), coll_t::make_temp_coll(p), o->store, cct)), diff --git a/src/osd/ReplicatedPG.h b/src/osd/ReplicatedPG.h index 51636cde49a84..c66a9b84e365d 100644 --- a/src/osd/ReplicatedPG.h +++ b/src/osd/ReplicatedPG.h @@ -1282,8 +1282,7 @@ protected: public: ReplicatedPG(OSDService *o, OSDMapRef curmap, - const PGPool &_pool, spg_t p, const hobject_t& oid, - const hobject_t& ioid); + const PGPool &_pool, spg_t p); ~ReplicatedPG() {} int do_command(cmdmap_t cmdmap, ostream& ss, bufferlist& idata, -- 2.39.5