From: Somnath Roy Date: Wed, 11 Jun 2014 01:10:30 +0000 (-0700) Subject: PG: Added a const spg_t member to the PG class X-Git-Tag: v0.83~110^2 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=0bbeeee3b4434d4b29faf450afcc3e32793b299d;p=ceph.git PG: Added a const spg_t member to the PG class The const spg_t member is been insantiated from constructor and now get_pgid() can reference this to return a spg_t instance without the need of pg_info (thus not requiring to acquire pg_lock). Signed-off-by: Somnath Roy --- diff --git a/src/osd/PG.cc b/src/osd/PG.cc index aa3b6d5ac712..0d00a9f05ca8 100644 --- a/src/osd/PG.cc +++ b/src/osd/PG.cc @@ -194,7 +194,8 @@ PG::PG(OSDService *o, OSDMapRef curmap, finish_sync_event(NULL), scrub_after_recovery(false), active_pushes(0), - recovery_state(this) + recovery_state(this), + pg_id(p) { #ifdef PG_DEBUG_REFS osd->add_pgid(p, this); diff --git a/src/osd/PG.h b/src/osd/PG.h index 1b7311d62528..e8f3c3c829e1 100644 --- a/src/osd/PG.h +++ b/src/osd/PG.h @@ -1877,9 +1877,10 @@ public: // Prevent copying PG(const PG& rhs); PG& operator=(const PG& rhs); + const spg_t pg_id; public: - spg_t get_pgid() const { return info.pgid; } + const spg_t& get_pgid() const { return pg_id; } int get_nrep() const { return acting.size(); } void init_primary_up_acting(