On 27.02.23 21:57, Stefan Hajnoczi wrote:
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 <[email protected]>
---
  block/block-backend.c | 18 ++++++++++++++++--
  1 file changed, 16 insertions(+), 2 deletions(-)

Reviewed-by: Hanna Czenczek <[email protected]>


Reply via email to