]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commitdiff
PG: only queue for recovery once peered 9231/head
authorSamuel Just <sjust@redhat.com>
Mon, 16 Nov 2015 23:06:30 +0000 (15:06 -0800)
committerSamuel Just <sjust@redhat.com>
Wed, 18 May 2016 19:58:51 +0000 (12:58 -0700)
Signed-off-by: Samuel Just <sjust@redhat.com>
src/osd/PG.cc

index 03c4df954203ae867c1c02e322c8dd95eb561dcd..0059f5b8e17271499770f798cb1eec86ef910365 100644 (file)
@@ -6742,7 +6742,8 @@ boost::statechart::result PG::RecoveryState::Active::react(const ActMap&)
     pg->queue_snap_trim();
   }
 
-  if (!pg->is_clean() &&
+  if (pg->is_peered() &&
+      !pg->is_clean() &&
       !pg->get_osdmap()->test_flag(CEPH_OSDMAP_NOBACKFILL) &&
       (!pg->get_osdmap()->test_flag(CEPH_OSDMAP_NOREBALANCE) || pg->is_degraded())) {
     pg->queue_recovery();
@@ -6810,7 +6811,8 @@ boost::statechart::result PG::RecoveryState::Active::react(const MLogRec& logevt
     pg->peer_missing[logevt.from],
     logevt.from,
     context< RecoveryMachine >().get_recovery_ctx());
-  if (got_missing)
+  if (pg->is_peered() &&
+      got_missing)
     pg->queue_recovery();
   return discard_event();
 }