From: Mykola Golub Date: Thu, 9 Jul 2020 13:36:39 +0000 (+0100) Subject: librbd: properly unregister failed async_complete request X-Git-Tag: v15.2.5~63^2 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=20468529b514ea5782f31d00956c5c81daa3cfcb;p=ceph.git librbd: properly unregister failed async_complete request Signed-off-by: Mykola Golub (cherry picked from commit 143179ffa92ce64d89fc98d6d6c9e7a3722a12f2) --- diff --git a/src/librbd/ImageWatcher.cc b/src/librbd/ImageWatcher.cc index 69b7f7682d0..c46549a78d3 100644 --- a/src/librbd/ImageWatcher.cc +++ b/src/librbd/ImageWatcher.cc @@ -160,12 +160,13 @@ void ImageWatcher::handle_async_complete(const AsyncRequestId &request, << cpp_strerror(ret_val) << dendl; if (ret_val == -ETIMEDOUT && !is_unregistered()) { schedule_async_complete(request, r); + m_async_op_tracker.finish_op(); + return; } - } else { - std::unique_lock async_request_locker{m_async_request_lock}; - m_async_pending.erase(request); } + std::unique_lock async_request_locker{m_async_request_lock}; + m_async_pending.erase(request); m_async_op_tracker.finish_op(); }