From 20468529b514ea5782f31d00956c5c81daa3cfcb Mon Sep 17 00:00:00 2001 From: Mykola Golub Date: Thu, 9 Jul 2020 14:36:39 +0100 Subject: [PATCH] librbd: properly unregister failed async_complete request Signed-off-by: Mykola Golub (cherry picked from commit 143179ffa92ce64d89fc98d6d6c9e7a3722a12f2) --- src/librbd/ImageWatcher.cc | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) 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(); } -- 2.47.3