]> git-server-git.apps.pok.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>
Tue, 31 May 2016 15:48:16 +0000 (11:48 -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>
(cherry picked from commit 9cb0b180bc8a12ea2ebb0d7e32279b696ddd127e)

src/librbd/internal.cc

index c30cee61f109be29c95383946477e75489a7225f..2c9a085be00ea8b84aba860b04ee9ec4ee9f41e3 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) {