]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
rbd-mirror: Unregister clients from non-primary images journal
authorRicardo Dias <rdias@suse.com>
Fri, 13 May 2016 15:44:53 +0000 (16:44 +0100)
committerJason Dillaman <dillaman@redhat.com>
Sun, 22 May 2016 20:13:21 +0000 (16:13 -0400)
A non-primary image may have registered clients on its journal
(for instance a primary image that was later demoted). We must
unregister the clients when disabling image mirroring with the
force option.

Signed-off-by: Ricardo Dias <rdias@suse.com>
src/librbd/internal.cc

index 9aaeaaf8b085e0e6213c3d3553695c4f8e2e23bb..47e0f701da02f4a27155ece1c4751bdfeef644e6 100644 (file)
@@ -335,10 +335,6 @@ int mirror_image_disable_internal(ImageCtx *ictx, bool force,
     return r;
   }
 
-  if (!is_primary) {
-    goto remove_mirroring_image;
-  }
-
   r = MirroringWatcher<>::notify_image_updated(
     ictx->md_ctx, cls::rbd::MIRROR_IMAGE_STATE_DISABLING,
     ictx->id, mirror_image_internal.global_image_id);
@@ -397,7 +393,6 @@ int mirror_image_disable_internal(ImageCtx *ictx, bool force,
     }
   }
 
-remove_mirroring_image:
   if (remove) {
     r = cls_client::mirror_image_remove(&ictx->md_ctx, ictx->id);
     if (r < 0) {