QEMU block layer multi-queue support involves running I/O requests from multiple threads. Shared state must be protected somehow to avoid thread-safety issues.
The BlockBackend->queued_requests CoQueue is accessed without a lock and will likely be corrupted when multiple threads queue requests at the same time. This patch series make BlockBackend->queued_requests thread-safe. Stefan Hajnoczi (3): block: make BlockBackend->quiesce_counter atomic block: make BlockBackend->disable_request_queuing atomic block: protect BlockBackend->queued_requests with a lock block/block-backend.c | 41 ++++++++++++++++++++++++++++++----------- 1 file changed, 30 insertions(+), 11 deletions(-) -- 2.39.2