From: Mykola Golub Date: Sat, 12 Nov 2016 12:23:20 +0000 (+0200) Subject: librbd: release lock after demote X-Git-Tag: v11.1.0~218^2 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=ef05afb80add8f55e4033855f09f59f5c0ad14bf;p=ceph.git librbd: release lock after demote Fixes: http://tracker.ceph.com/issues/17880 Signed-off-by: Mykola Golub --- diff --git a/src/librbd/internal.cc b/src/librbd/internal.cc index 21188895c27..21481cec757 100644 --- a/src/librbd/internal.cc +++ b/src/librbd/internal.cc @@ -2588,6 +2588,12 @@ int mirror_image_disable_internal(ImageCtx *ictx, bool force, return -EROFS; } + BOOST_SCOPE_EXIT_ALL( (ictx) ) { + C_SaferCond lock_ctx; + ictx->exclusive_lock->release_lock(&lock_ctx); + lock_ctx.wait(); + }; + RWLock::RLocker snap_locker(ictx->snap_lock); if (ictx->journal == nullptr) { lderr(cct) << "journal is not active" << dendl;