From 33a484bb879939b0ee6a94e26705fb337ff54f6c Mon Sep 17 00:00:00 2001 From: Ilya Dryomov Date: Sun, 20 Feb 2022 13:11:02 +0100 Subject: [PATCH] rbd-mirror: manual stop should take precedence over regular stop 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 (cherry picked from commit c5b5787349e91a0fd23cd6d5e73b2a383ddd8687) --- src/tools/rbd_mirror/ImageReplayer.cc | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/tools/rbd_mirror/ImageReplayer.cc b/src/tools/rbd_mirror/ImageReplayer.cc index 3a2fd2357169e..1a09aedff126d 100644 --- a/src/tools/rbd_mirror/ImageReplayer.cc +++ b/src/tools/rbd_mirror/ImageReplayer.cc @@ -528,6 +528,10 @@ void ImageReplayer::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; -- 2.39.5