From 2d3205ff1a20e04916cf05b8f01499cd8a6f9584 Mon Sep 17 00:00:00 2001 From: Samuel Just Date: Wed, 12 Feb 2014 10:46:09 -0800 Subject: [PATCH] PG: skip CRUSH_ITEM_NONE in acting set in various places Signed-off-by: Samuel Just --- src/osd/PG.cc | 20 ++++++++++++++++---- 1 file changed, 16 insertions(+), 4 deletions(-) diff --git a/src/osd/PG.cc b/src/osd/PG.cc index 1e36d3fd90f06..f2d09f0690514 100644 --- a/src/osd/PG.cc +++ b/src/osd/PG.cc @@ -3533,6 +3533,8 @@ void PG::scrub(ThreadPool::TPHandle &handle) scrubber.is_chunky = true; assert(backfill_targets.empty()); for (unsigned i=1; iget_con_osd_cluster(acting[i], get_osdmap()->get_epoch()); if (!con) continue; @@ -4432,6 +4434,8 @@ bool PG::may_need_replay(const OSDMapRef osdmap) const // consider ACTING osds for (unsigned i=0; iexists(o)) @@ -6578,6 +6582,8 @@ boost::statechart::result PG::RecoveryState::GetInfo::react(const MNotifyRec& in bool any_down_now = false; for (unsigned i=0; ipool.info.ec_pool() ? i : ghobject_t::NO_SHARD); if (!osdmap->exists(o) || osdmap->get_info(o).lost_at > interval.first) continue; // dne or lost @@ -7175,12 +7181,16 @@ PG::PriorSet::PriorSet(bool ec_pool, // but because we want their pg_info to inform choose_acting(), and // so that we know what they do/do not have explicitly before // sending them any new info/logs/whatever. - for (unsigned i=0; i::const_reverse_iterator p = past_intervals.rbegin(); p != past_intervals.rend(); @@ -7206,6 +7216,8 @@ PG::PriorSet::PriorSet(bool ec_pool, // consider ACTING osds for (unsigned i=0; i