From: Mykola Golub Date: Tue, 5 May 2020 14:26:39 +0000 (+0100) Subject: rbd-mirror: wait for in-flight start/stop/restart X-Git-Tag: v14.2.22~1^2~1 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=55f88d66e3c4736477215109c3b8be4e152eee76;p=ceph.git rbd-mirror: wait for in-flight start/stop/restart when stopping instance replayer on shut down. Signed-off-by: Mykola Golub (cherry picked from commit e55b64eaecb750e4ad6db89a741c8d0d3f03a670) Conflicts: src/tools/rbd_mirror/InstanceReplayer.cc (no on_finish arg for stop()) --- diff --git a/src/tools/rbd_mirror/InstanceReplayer.cc b/src/tools/rbd_mirror/InstanceReplayer.cc index b0e4463dac67..45495c944e6d 100644 --- a/src/tools/rbd_mirror/InstanceReplayer.cc +++ b/src/tools/rbd_mirror/InstanceReplayer.cc @@ -265,9 +265,9 @@ void InstanceReplayer::stop() { dout(10) << dendl; + auto on_finish = new C_TrackedOp(m_async_op_tracker, nullptr); auto cct = static_cast(m_local_rados->cct()); - auto gather_ctx = new C_Gather( - cct, new C_TrackedOp(m_async_op_tracker, nullptr)); + auto gather_ctx = new C_Gather(cct, on_finish); { Mutex::Locker locker(m_lock);