]> git.apps.os.sepia.ceph.com Git - ceph.git/commit
librbd: ensure that thread pool lock is held when processing throttled IOs 37895/head
authorJason Dillaman <dillaman@redhat.com>
Fri, 11 Sep 2020 19:20:45 +0000 (15:20 -0400)
committerNathan Cutler <ncutler@suse.com>
Thu, 3 Dec 2020 19:03:30 +0000 (20:03 +0100)
commitaa381ab5065541fec032b9657e381defa87a16e3
tree6c8000638cc57a854c00a20bce5666dffb9b290b
parentc170a00551759755c81ac27b5bd9b0bd215036fd
librbd: ensure that thread pool lock is held when processing throttled IOs

There previously was a potential race for throttled IOs to complete prior
to the main worker thread finishing the processing of the blocked IO.

Fixes: https://tracker.ceph.com/issues/47371
Signed-off-by: Jason Dillaman <dillaman@redhat.com>
(cherry picked from commit 2d86e0935aa6f0c392df428676d9ab0a338fccae)

Conflicts:
    src/test/librbd/io/test_mock_ImageRequestWQ.cc
- in Octopus, commit 792d6c53fedc695199cc18916347c1b545fe42c2 did a global
  replace of Mutex to ceph::mutex, so to fix this for Nautilus, we just need to
  do that in test_mock_ImageRequestWQ.cc since the get_pool_lock() method is
  returning a Mutex instead of a ceph::mutex
src/librbd/io/ImageRequestWQ.cc
src/test/librbd/io/test_mock_ImageRequestWQ.cc