From: Jason Dillaman Date: Thu, 28 Apr 2016 16:43:24 +0000 (-0400) Subject: librbd: return -ESHUTDOWN when a refresh is requested on a closed image X-Git-Tag: v10.2.1~28^2~1 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=1f0056a427cd46793934c59c49aa225da2237628;p=ceph.git librbd: return -ESHUTDOWN when a refresh is requested on a closed image Signed-off-by: Jason Dillaman (cherry picked from commit ed132a1eb10e6b2eb4bc465658eb0379daca3d67) --- diff --git a/src/librbd/ImageState.cc b/src/librbd/ImageState.cc index 329ad3afa55..0bf2e45f7c1 100644 --- a/src/librbd/ImageState.cc +++ b/src/librbd/ImageState.cc @@ -109,7 +109,7 @@ void ImageState::refresh(Context *on_finish) { m_lock.Lock(); if (is_closed()) { m_lock.Unlock(); - on_finish->complete(0); + on_finish->complete(-ESHUTDOWN); return; } @@ -123,9 +123,12 @@ int ImageState::refresh_if_required() { C_SaferCond ctx; { m_lock.Lock(); - if (m_last_refresh == m_refresh_seq || is_closed()) { + if (m_last_refresh == m_refresh_seq) { m_lock.Unlock(); return 0; + } else if (is_closed()) { + m_lock.Unlock(); + return -ESHUTDOWN; } Action action(ACTION_TYPE_REFRESH);