]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
rbd-mirror: manual stop should take precedence over regular stop
authorIlya Dryomov <idryomov@gmail.com>
Sun, 20 Feb 2022 12:11:02 +0000 (13:11 +0100)
committerPonnuvel Palaniyappan <pponnuvel@gmail.com>
Wed, 11 May 2022 06:18:12 +0000 (07:18 +0100)
Somewhat similar to commit 0a3794e56256 ("rbd-mirror: make stop
properly cancel restart"), make it so that a) if a manual stop is
joined to regular stop, the stop becomes manual and b) if a regular
stop is joined to a manual stop, the stop stays manual.

Signed-off-by: Ilya Dryomov <idryomov@gmail.com>
(cherry picked from commit c5b5787349e91a0fd23cd6d5e73b2a383ddd8687)

src/tools/rbd_mirror/ImageReplayer.cc

index 3a2fd2357169e59bd16c920d950f947e6b54c8ac..1a09aedff126d791eedefe324b1c3dfb758fabf6 100644 (file)
@@ -528,6 +528,10 @@ void ImageReplayer<I>::stop(Context *on_finish, bool manual, bool restart)
 
     if (!is_running_()) {
       running = false;
+      if (manual && !m_manual_stop) {
+        dout(10) << "marking manual" << dendl;
+        m_manual_stop = true;
+      }
       if (!restart && m_restart_requested) {
         dout(10) << "canceling restart" << dendl;
         m_restart_requested = false;