From 0bbeeee3b4434d4b29faf450afcc3e32793b299d Mon Sep 17 00:00:00 2001 From: Somnath Roy Date: Tue, 10 Jun 2014 18:10:30 -0700 Subject: [PATCH] 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 --- src/osd/PG.cc | 3 ++- src/osd/PG.h | 3 ++- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/src/osd/PG.cc b/src/osd/PG.cc index aa3b6d5ac7126..0d00a9f05ca8f 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 1b7311d62528a..e8f3c3c829e13 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( -- 2.39.5