From: Sage Weil Date: Mon, 23 Oct 2017 22:11:59 +0000 (-0500) Subject: osd/PrimaryLogPG: clear DEGRADED at recovery completion even if more backfill X-Git-Tag: v13.0.1~414^2 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=2207607f3c2637ad55ca4fded9348f94cf2afc3e;p=ceph.git osd/PrimaryLogPG: clear DEGRADED at recovery completion even if more backfill We may have log recovery *and* backfill to do, but cease to be degraded as soon as the log recovery portion is done. If that's the case, clear the DEGRADED bit so that the PG state is not misleading. Signed-off-by: Sage Weil --- diff --git a/src/osd/PrimaryLogPG.cc b/src/osd/PrimaryLogPG.cc index 731f135fbb78..916a63a98a63 100644 --- a/src/osd/PrimaryLogPG.cc +++ b/src/osd/PrimaryLogPG.cc @@ -11231,6 +11231,9 @@ bool PrimaryLogPG::start_recovery_ops( if (state_test(PG_STATE_RECOVERING)) { state_clear(PG_STATE_RECOVERING); state_clear(PG_STATE_FORCED_RECOVERY); + if (get_osdmap()->get_pg_size(info.pgid.pgid) <= acting.size()) { + state_clear(PG_STATE_DEGRADED); + } if (needs_backfill()) { dout(10) << "recovery done, queuing backfill" << dendl; queue_peering_event(