]> git.apps.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:07:04 +0000 (14:07 -0700)
Backport: bobtail
Fixes: #4534
Signed-off-by: Samuel Just <sam.just@inktank.com>
Reviewed-by: Sage Weil <sage@inktank.com>
src/osd/PG.cc

index 231d4d175ba074fa1237305d75d7f5320a5bce3a..1acea129a6d0b03a3b8f5d7df5d27c8404bc73f0 100644 (file)
@@ -7204,7 +7204,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();
 };