context< RecoveryMachine >().log_enter(state_name);
}
+boost::statechart::result PG::RecoveryState::Primary::react(const AdvMap &advmap)
+{
+ PG *pg = context< RecoveryMachine >().pg;
+ pg->remove_down_peer_info(advmap.osdmap);
+ pg->check_recovery_sources(advmap.osdmap);
+ return forward_event();
+}
+
boost::statechart::result PG::RecoveryState::Primary::react(const MNotifyRec& notevt)
{
dout(7) << "handle_pg_notify from osd." << notevt.from << dendl;
pg->dirty_info = true;
pg->dirty_big_info = true;
}
- pg->check_recovery_sources(pg->get_osdmap());
for (vector<int>::iterator p = pg->want_acting.begin();
p != pg->want_acting.end(); ++p) {
PG *pg = context< RecoveryMachine >().pg;
OSDMapRef osdmap = advmap.osdmap;
- pg->remove_down_peer_info(osdmap);
-
dout(10) << "verifying no want_acting " << pg->want_acting << " targets didn't go down" << dendl;
for (vector<int>::iterator p = pg->want_acting.begin(); p != pg->want_acting.end(); ++p) {
if (!osdmap->is_up(*p)) {
typedef boost::mpl::list <
boost::statechart::custom_reaction< ActMap >,
boost::statechart::custom_reaction< MNotifyRec >,
- boost::statechart::transition< NeedActingChange, WaitActingChange >
+ boost::statechart::transition< NeedActingChange, WaitActingChange >,
+ boost::statechart::custom_reaction< AdvMap>
> reactions;
+ boost::statechart::result react(const AdvMap&);
boost::statechart::result react(const ActMap&);
boost::statechart::result react(const MNotifyRec&);
};