]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commit
librbd: fix race on watcher unregister 37594/head
authorMykola Golub <mgolub@suse.com>
Thu, 8 Oct 2020 17:12:11 +0000 (18:12 +0100)
committerMykola Golub <mgolub@suse.com>
Thu, 8 Oct 2020 17:12:11 +0000 (18:12 +0100)
commit37cc998bad8b922eb928bdbbd0ac8369ef18f5f5
tree65c429db177e906d5b8c981320b4c2fc29655a08
parent98a8f533b83a282e1768fcaf2e0b44fc88cbe86d
librbd: fix race on watcher unregister

It was possible that "unregister_watch" would get stuck forever
in "m_async_op_tracker.wait_for_ops", waiting for unqueiesce
notifications to complete, which had been already canceled
when "unregister" called "TaskFinisher::cancel_all".

Signed-off-by: Mykola Golub <mgolub@suse.com>
src/librbd/ImageWatcher.cc
src/librbd/ImageWatcher.h
src/librbd/TaskFinisher.h