]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
osd: Handle getting RecoveryDone while in RepWaitBackfillReserved 20933/head
authorDavid Zafman <dzafman@redhat.com>
Tue, 13 Mar 2018 20:47:28 +0000 (13:47 -0700)
committerDavid Zafman <dzafman@redhat.com>
Tue, 13 Mar 2018 20:47:28 +0000 (13:47 -0700)
Signed-off-by: David Zafman <dzafman@redhat.com>
src/osd/PG.cc
src/osd/PG.h

index 744cde166f23e199260e41110bd4fa7c8a14b1be..7491f42f1534ef2b8572d55c87f4f04f2d5c979b 100644 (file)
@@ -7151,6 +7151,14 @@ PG::RecoveryState::RepWaitBackfillReserved::react(
   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),
index e091e458501b525cf5355cc8795aba7b2cb6d377..1408294ab04ccec207bfe273e353cc87bf601fa7 100644 (file)
@@ -2341,7 +2341,8 @@ protected:
        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();
@@ -2349,6 +2350,7 @@ protected:
       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 {