From ed132a1eb10e6b2eb4bc465658eb0379daca3d67 Mon Sep 17 00:00:00 2001 From: Jason Dillaman Date: Thu, 28 Apr 2016 12:43:24 -0400 Subject: [PATCH] librbd: return -ESHUTDOWN when a refresh is requested on a closed image Signed-off-by: Jason Dillaman --- src/librbd/ImageState.cc | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/src/librbd/ImageState.cc b/src/librbd/ImageState.cc index 329ad3afa55f4..0bf2e45f7c15e 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); -- 2.39.5