]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commitdiff
librbd: properly unregister failed async_complete request 36659/head
authorMykola Golub <mgolub@suse.com>
Thu, 9 Jul 2020 13:36:39 +0000 (14:36 +0100)
committerNathan Cutler <ncutler@suse.com>
Sat, 15 Aug 2020 13:17:05 +0000 (15:17 +0200)
Signed-off-by: Mykola Golub <mgolub@suse.com>
(cherry picked from commit 143179ffa92ce64d89fc98d6d6c9e7a3722a12f2)

src/librbd/ImageWatcher.cc

index 69b7f7682d08d44a7fe9f4ae7e98d02b0f7ebbb2..c46549a78d3d57479732cb3bad6279f69801842e 100644 (file)
@@ -160,12 +160,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();
 }