From: Sage Weil Date: Wed, 6 Aug 2014 21:02:51 +0000 (-0700) Subject: osd/PG: set blocked_by in Incomplete state X-Git-Tag: v0.85~27^2~7 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=6fcdbd21c3c5b72fdcb08e7756dd8d703b8d7762;p=ceph.git osd/PG: set blocked_by in Incomplete state Signed-off-by: Sage Weil --- 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--------*/