From: Samuel Just Date: Fri, 28 Mar 2014 22:57:43 +0000 (-0700) Subject: ReplicatedPG: hit_set_setup, agent_setup, skip if !active X-Git-Tag: v0.80-rc1~94^2 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=1aa1d9380b69bd06674b3fe231f81c3dfe7808af;p=ceph.git 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 --- diff --git a/src/osd/ReplicatedPG.cc b/src/osd/ReplicatedPG.cc index 7b8051a5d75e..d4074296c829 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)) {