]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commitdiff
osd/PrimaryLogPG: clear DEGRADED at recovery completion even if more backfill 18498/head
authorSage Weil <sage@redhat.com>
Mon, 23 Oct 2017 22:11:59 +0000 (17:11 -0500)
committerSage Weil <sage@redhat.com>
Tue, 24 Oct 2017 14:00:01 +0000 (09:00 -0500)
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 <sage@redhat.com>
(cherry picked from commit 3e91fda79d3be771f46394312a6b72ab75660012)

src/osd/PrimaryLogPG.cc

index 141053d333ab54a90839ef9a1736ac37860d6411..123c15a2cb604424a816fedbb46d5cb27e1631a0 100644 (file)
@@ -11418,6 +11418,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(