From: Jason Dillaman Date: Tue, 12 Apr 2016 15:19:45 +0000 (-0400) Subject: librbd: gracefully handle blacklisted client in ImageWatcher X-Git-Tag: ses3-milestone4~14^2~3 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=1761a38f7672e8fb27fd5de53054436bd8551c6f;p=ceph.git librbd: gracefully handle blacklisted client in ImageWatcher Signed-off-by: Jason Dillaman --- diff --git a/src/librbd/ImageWatcher.cc b/src/librbd/ImageWatcher.cc index 9579723b2271..63a085f65cd6 100644 --- a/src/librbd/ImageWatcher.cc +++ b/src/librbd/ImageWatcher.cc @@ -459,6 +459,9 @@ Context *ImageWatcher::remove_async_request(const AsyncRequestId &id) { } void ImageWatcher::schedule_async_request_timed_out(const AsyncRequestId &id) { + ldout(m_image_ctx.cct, 20) << "scheduling async request time out: " << id + << dendl; + Context *ctx = new FunctionContext(boost::bind( &ImageWatcher::async_request_timed_out, this, id)); @@ -896,6 +899,11 @@ void ImageWatcher::reregister_watch() { int r; if (releasing_lock) { r = release_lock_ctx.wait(); + if (r == -EBLACKLISTED) { + lderr(m_image_ctx.cct) << this << " client blacklisted" << dendl; + return; + } + assert(r == 0); }