From 769f99490ee4ae47a00a4071a1fe63e565ec3586 Mon Sep 17 00:00:00 2001 From: Jason Dillaman Date: Thu, 14 Apr 2016 08:14:46 -0400 Subject: [PATCH] librbd: dynamically disabling exclusive lock might leave lingering request Signed-off-by: Jason Dillaman --- src/librbd/ImageWatcher.cc | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/src/librbd/ImageWatcher.cc b/src/librbd/ImageWatcher.cc index df8f366520d45..de337c289e3c1 100644 --- a/src/librbd/ImageWatcher.cc +++ b/src/librbd/ImageWatcher.cc @@ -403,6 +403,11 @@ void ImageWatcher::schedule_request_lock(bool use_timer, int timer_delay) { void ImageWatcher::notify_request_lock() { RWLock::RLocker owner_locker(m_image_ctx.owner_lock); RWLock::RLocker snap_locker(m_image_ctx.snap_lock); + + // ExclusiveLock state machine can be dynamically disabled + if (m_image_ctx.exclusive_lock == nullptr) { + return; + } assert(!m_image_ctx.exclusive_lock->is_lock_owner()); ldout(m_image_ctx.cct, 10) << this << " notify request lock" << dendl; -- 2.39.5