From: Mykola Golub Date: Wed, 10 Aug 2016 08:22:16 +0000 (+0300) Subject: rbd-mirror: resync was possible only when image replayer start had succeeded X-Git-Tag: v10.2.4~61^2~39 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=80aa7e0b4fae6f71a34e28ad1225e3540f9606ed;p=ceph.git rbd-mirror: resync was possible only when image replayer start had succeeded Signed-off-by: Mykola Golub (cherry picked from commit 4bf6912f3c75560b89324fc29286028750f122c1) --- diff --git a/src/tools/rbd_mirror/ImageReplayer.cc b/src/tools/rbd_mirror/ImageReplayer.cc index 86da4bc7dc42e..83c30a29c2e9d 100644 --- a/src/tools/rbd_mirror/ImageReplayer.cc +++ b/src/tools/rbd_mirror/ImageReplayer.cc @@ -454,7 +454,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;