diff options
author | Stefan Hajnoczi <stefanha@redhat.com> | 2023-03-07 16:04:27 -0500 |
---|---|---|
committer | Kevin Wolf <kwolf@redhat.com> | 2023-04-25 13:15:21 +0200 |
commit | 407ae2ae0714be309808a10997c248521b184006 (patch) | |
tree | 6e5effd2368668a246e01908c41760b856d2d251 /tests | |
parent | ef80ec5067d7ca5b46e5b88be1be33cddfd33551 (diff) | |
download | qemu-407ae2ae0714be309808a10997c248521b184006.zip qemu-407ae2ae0714be309808a10997c248521b184006.tar.gz qemu-407ae2ae0714be309808a10997c248521b184006.tar.bz2 |
block: protect BlockBackend->queued_requests with a lock
The CoQueue API offers thread-safety via the lock argument that
qemu_co_queue_wait() and qemu_co_enter_next() take. BlockBackend
currently does not make use of the lock argument. This means that
multiple threads submitting I/O requests can corrupt the CoQueue's
QSIMPLEQ.
Add a QemuMutex and pass it to CoQueue APIs so that the queue is
protected. While we're at it, also assert that the queue is empty when
the BlockBackend is deleted.
Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>
Reviewed-by: Hanna Czenczek <hreitz@redhat.com>
Message-Id: <20230307210427.269214-4-stefanha@redhat.com>
Reviewed-by: Kevin Wolf <kwolf@redhat.com>
Signed-off-by: Kevin Wolf <kwolf@redhat.com>
Diffstat (limited to 'tests')
0 files changed, 0 insertions, 0 deletions