return transit<NotRecovering>();
}
+boost::statechart::result
+PeeringState::WaitLocalRecoveryReserved::react(const AdvMap& ev)
+{
+ DECLARE_LOCALS;
+ if (!ps->cct->_conf->osd_debug_skip_full_check_in_recovery &&
+ ps->get_osdmap()->check_full(ps->acting_recovery_backfill)) {
+ post_event(RecoveryTooFull());
+ return discard_event();
+ }
+ return forward_event();
+}
+
void PeeringState::WaitLocalRecoveryReserved::exit()
{
context< PeeringMachine >().log_exit(state_name, enter_time);
return discard_event();
}
+boost::statechart::result
+PeeringState::WaitRemoteRecoveryReserved::react(const AdvMap& ev)
+{
+ DECLARE_LOCALS;
+ if (!ps->cct->_conf->osd_debug_skip_full_check_in_recovery &&
+ ps->get_osdmap()->check_full(ps->acting_recovery_backfill)) {
+ post_event(RecoveryTooFull());
+ return discard_event();
+ }
+ return forward_event();
+}
+
void PeeringState::WaitRemoteRecoveryReserved::exit()
{
context< PeeringMachine >().log_exit(state_name, enter_time);
std::set<pg_shard_t>::const_iterator remote_recovery_reservation_it;
explicit WaitRemoteRecoveryReserved(my_context ctx);
boost::statechart::result react(const RemoteRecoveryReserved &evt);
+ boost::statechart::result react(const AdvMap& ev);
void exit();
};
explicit WaitLocalRecoveryReserved(my_context ctx);
void exit();
boost::statechart::result react(const RecoveryTooFull &evt);
+ boost::statechart::result react(const AdvMap& ev);
};
struct Activating : boost::statechart::state< Activating, Active >, NamedState {