]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commitdiff
rbd-mirror: stop external replayer before closing remote journaler
authorJason Dillaman <dillaman@redhat.com>
Tue, 7 Jun 2016 18:45:16 +0000 (14:45 -0400)
committerJason Dillaman <dillaman@redhat.com>
Wed, 8 Jun 2016 15:06:20 +0000 (11:06 -0400)
Signed-off-by: Jason Dillaman <dillaman@redhat.com>
src/tools/rbd_mirror/ImageReplayer.cc

index 90961eb2d9d7700a7a684970908c81b38a5be256..d35f542bd3ad12a5d80a0d18f288f288559c4925 100644 (file)
@@ -1157,6 +1157,16 @@ void ImageReplayer<I>::shut_down(int r, Context *on_start) {
       request->send();
     });
   }
+  if (m_remote_journaler != nullptr) {
+    ctx = new FunctionContext([this, ctx](int r) {
+        delete m_remote_journaler;
+        m_remote_journaler = nullptr;
+        ctx->complete(0);
+      });
+    ctx = new FunctionContext([this, ctx](int r) {
+        m_remote_journaler->shut_down(ctx);
+      });
+  }
   if (m_local_replay != nullptr) {
     ctx = new FunctionContext([this, ctx](int r) {
         if (r < 0) {
@@ -1170,16 +1180,6 @@ void ImageReplayer<I>::shut_down(int r, Context *on_start) {
         m_local_replay->shut_down(true, ctx);
       });
   }
-  if (m_remote_journaler != nullptr) {
-    ctx = new FunctionContext([this, ctx](int r) {
-        delete m_remote_journaler;
-        m_remote_journaler = nullptr;
-        ctx->complete(0);
-      });
-    ctx = new FunctionContext([this, ctx](int r) {
-        m_remote_journaler->shut_down(ctx);
-      });
-  }
   if (m_replay_handler != nullptr) {
     ctx = new FunctionContext([this, ctx](int r) {
         delete m_replay_handler;