]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commit
librbd: flush all queued object IO from simple scheduler
authorJason Dillaman <dillaman@redhat.com>
Wed, 22 Jul 2020 15:25:56 +0000 (11:25 -0400)
committerNathan Cutler <ncutler@suse.com>
Sat, 15 Aug 2020 13:16:28 +0000 (15:16 +0200)
commitfcf93ef589fe0814cb3e3a25ae65f7f8a46b9595
tree6fd4f97a3cabdc1aff204ba4634cb4ec714aace4
parent35adebe94e8b0a17e7b56379a8bf24e5f7b8ced4
librbd: flush all queued object IO from simple scheduler

Normally IO is tracked via the AioCompletion's async_op but the
scheduler will "complete" writes while the IO might be still
executing. Therefore, prior to shutting down this dispatch layer
we need to wait for all IO to complete.

Fixes: https://tracker.ceph.com/issues/46668
Signed-off-by: Jason Dillaman <dillaman@redhat.com>
(cherry picked from commit 75ff8fd14dccaa7d2f11ba8a561ad3c0f410585c)
src/librbd/io/SimpleSchedulerObjectDispatch.cc
src/librbd/io/SimpleSchedulerObjectDispatch.h
src/test/librbd/io/test_mock_SimpleSchedulerObjectDispatch.cc