From 1aa1d9380b69bd06674b3fe231f81c3dfe7808af Mon Sep 17 00:00:00 2001 From: Samuel Just Date: Fri, 28 Mar 2014 15:57:43 -0700 Subject: [PATCH] ReplicatedPG: hit_set_setup, agent_setup, skip if !active We call these in on_activate and on_pool_change. In the former, we are necessarily active. In the latter, we only want to do anything if we are active (otherwise, it will be taken care of when we eventually do become active). Fixes: #7904 Signed-off-by: Samuel Just --- src/osd/ReplicatedPG.cc | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/src/osd/ReplicatedPG.cc b/src/osd/ReplicatedPG.cc index 7b8051a5d75..d4074296c82 100644 --- a/src/osd/ReplicatedPG.cc +++ b/src/osd/ReplicatedPG.cc @@ -10231,7 +10231,8 @@ void ReplicatedPG::hit_set_clear() void ReplicatedPG::hit_set_setup() { - if (!is_primary() || + if (!is_active() || + !is_primary() || !pool.info.hit_set_count || !pool.info.hit_set_period || pool.info.hit_set_params.get_type() == HitSet::TYPE_NONE) { @@ -10518,7 +10519,8 @@ void ReplicatedPG::hit_set_trim(RepGather *repop, unsigned max) void ReplicatedPG::agent_setup() { assert(is_locked()); - if (!is_primary() || + if (!is_active() || + !is_primary() || pool.info.cache_mode == pg_pool_t::CACHEMODE_NONE || pool.info.tier_of < 0 || !get_osdmap()->have_pg_pool(pool.info.tier_of)) {