summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSamuel Just <sam.just@inktank.com>2013-03-22 13:51:14 -0700
committerSamuel Just <sam.just@inktank.com>2013-03-22 14:15:17 -0700
commit1cd51eb63a91fa0aa395c41572cfee4d53fbc7f5 (patch)
treeec1bd81a661245106fe7250bab20095dac07354a
parentd866814285667c7f9cd9205dca6cf95f3634c5fc (diff)
downloadceph-1cd51eb63a91fa0aa395c41572cfee4d53fbc7f5.tar.gz
PG::GetMissing: need to check need_up_thru in MLogRec handler
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)
-rw-r--r--src/osd/PG.cc9
1 files changed, 8 insertions, 1 deletions
diff --git a/src/osd/PG.cc b/src/osd/PG.cc
index fbaf70c23e5..0878dc0d553 100644
--- a/src/osd/PG.cc
+++ b/src/osd/PG.cc
@@ -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();
};