]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
librbd: properly unregister failed async_complete request 35981/head
authorMykola Golub <mgolub@suse.com>
Thu, 9 Jul 2020 13:36:39 +0000 (14:36 +0100)
committerMykola Golub <mgolub@suse.com>
Thu, 9 Jul 2020 13:36:39 +0000 (14:36 +0100)
Signed-off-by: Mykola Golub <mgolub@suse.com>
src/librbd/ImageWatcher.cc

index ea116829d20e6969fad53ff4bb882743d358c399..7ec16567a7aa7df91a5dd9ed56ec415215112560 100644 (file)
@@ -159,12 +159,13 @@ void ImageWatcher<I>::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();
 }