]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commitdiff
PG::GetMissing: need to check need_up_thru in MLogRec handler
authorSamuel Just <sam.just@inktank.com>
Fri, 22 Mar 2013 20:51:14 +0000 (13:51 -0700)
committerSamuel Just <sam.just@inktank.com>
Fri, 22 Mar 2013 21:15:17 +0000 (14:15 -0700)
Backport: bobtail
Fixes: #4534
Signed-off-by: Samuel Just <sam.just@inktank.com>
Reviewed-by: Sage Weil <sage@inktank.com>
(cherry picked from commit 4fe4deafbe1758a6b3570048aca57485bd562440)

src/osd/PG.cc

index fbaf70c23e568a808b5acaccebd44ef7849e9a73..0878dc0d55376b914def2084cf3a8d5895258fe9 100644 (file)
@@ -6871,7 +6871,14 @@ boost::statechart::result PG::RecoveryState::GetMissing::react(const MLogRec& lo
                       logevt.msg->info, logevt.msg->log, logevt.msg->missing, logevt.from);
   
   if (peer_missing_requested.empty()) {
-    post_event(CheckRepops());
+    if (pg->need_up_thru) {
+      dout(10) << " still need up_thru update before going active" << dendl;
+      post_event(NeedUpThru());
+    } else {
+      dout(10) << "Got last missing, don't need missing "
+              << "posting CheckRepops" << dendl;
+      post_event(CheckRepops());
+    }
   }
   return discard_event();
 };