From: Ricardo Dias Date: Fri, 13 May 2016 15:44:53 +0000 (+0100) Subject: rbd-mirror: Unregister clients from non-primary images journal X-Git-Tag: v11.0.0~457^2~1 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=9cb0b180bc8a12ea2ebb0d7e32279b696ddd127e;p=ceph.git rbd-mirror: Unregister clients from non-primary images journal 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 --- diff --git a/src/librbd/internal.cc b/src/librbd/internal.cc index 9aaeaaf8b085..47e0f701da02 100644 --- a/src/librbd/internal.cc +++ b/src/librbd/internal.cc @@ -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) {