From 4bf6912f3c75560b89324fc29286028750f122c1 Mon Sep 17 00:00:00 2001 From: Mykola Golub Date: Wed, 10 Aug 2016 11:22:16 +0300 Subject: [PATCH] rbd-mirror: resync was possible only when image replayer start had succeeded Signed-off-by: Mykola Golub --- src/tools/rbd_mirror/ImageReplayer.cc | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/src/tools/rbd_mirror/ImageReplayer.cc b/src/tools/rbd_mirror/ImageReplayer.cc index 719a2c042a87e..3a78457c0d7ed 100644 --- a/src/tools/rbd_mirror/ImageReplayer.cc +++ b/src/tools/rbd_mirror/ImageReplayer.cc @@ -455,7 +455,14 @@ void ImageReplayer::handle_bootstrap(int r) { if (do_resync) { Context *on_finish = m_on_start_finish; + m_stopping_for_resync = true; FunctionContext *ctx = new FunctionContext([this, on_finish](int r) { + if (r < 0) { + if (on_finish) { + on_finish->complete(r); + } + return; + } resync_image(on_finish); }); m_on_start_finish = ctx; -- 2.39.5