return transit<RepNotRecovering>();
}
+boost::statechart::result
+PG::RecoveryState::RepWaitBackfillReserved::react(const RecoveryDone&)
+{
+ PG *pg = context< RecoveryMachine >().pg;
+ pg->osd->remote_reserver.cancel_reservation(pg->info.pgid);
+ return transit<RepNotRecovering>();
+}
+
/*---RepRecovering-------*/
PG::RecoveryState::RepRecovering::RepRecovering(my_context ctx)
: my_base(ctx),
boost::statechart::custom_reaction< RemoteBackfillReserved >,
boost::statechart::custom_reaction< RejectRemoteReservation >,
boost::statechart::custom_reaction< RemoteReservationRejected >,
- boost::statechart::custom_reaction< RemoteReservationCanceled >
+ boost::statechart::custom_reaction< RemoteReservationCanceled >,
+ boost::statechart::custom_reaction< RecoveryDone >
> reactions;
explicit RepWaitBackfillReserved(my_context ctx);
void exit();
boost::statechart::result react(const RejectRemoteReservation &evt);
boost::statechart::result react(const RemoteReservationRejected &evt);
boost::statechart::result react(const RemoteReservationCanceled &evt);
+ boost::statechart::result react(const RecoveryDone&);
};
struct RepWaitRecoveryReserved : boost::statechart::state< RepWaitRecoveryReserved, ReplicaActive >, NamedState {