From 6fcdbd21c3c5b72fdcb08e7756dd8d703b8d7762 Mon Sep 17 00:00:00 2001 From: Sage Weil Date: Wed, 6 Aug 2014 14:02:51 -0700 Subject: [PATCH] osd/PG: set blocked_by in Incomplete state Signed-off-by: Sage Weil --- src/osd/PG.cc | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/src/osd/PG.cc b/src/osd/PG.cc index d5a973655f6..3f28cda9a30 100644 --- a/src/osd/PG.cc +++ b/src/osd/PG.cc @@ -6956,6 +6956,10 @@ PG::RecoveryState::Incomplete::Incomplete(my_context ctx) pg->state_clear(PG_STATE_PEERING); pg->state_set(PG_STATE_INCOMPLETE); + + auto_ptr &prior_set = context< Peering >().prior_set; + assert(pg->blocked_by.empty()); + pg->blocked_by.insert(prior_set->down.begin(), prior_set->down.end()); pg->publish_stats_to_osd(); } @@ -6996,6 +7000,8 @@ void PG::RecoveryState::Incomplete::exit() pg->state_clear(PG_STATE_INCOMPLETE); utime_t dur = ceph_clock_now(pg->cct) - enter_time; pg->osd->recoverystate_perf->tinc(rs_incomplete_latency, dur); + + pg->blocked_by.clear(); } /*------GetMissing--------*/ -- 2.47.3