We can only have a single wait_serialising_requests() call per request because otherwise we can run into deadlocks where requests are waiting for each other. The same is true when wait_serialising_requests() is not at the very beginning of a request, so that other requests can be issued between the start of the tracking and wait_serialising_requests(). Fix this by changing wait_serialising_requests() to ignore requests that are already (directly or indirectly) waiting for the calling request. Signed-off-by: Kevin Wolf <kwolf@redhat.com> Reviewed-by: Max Reitz <mreitz@redhat.com> Reviewed-by: Benoit Canet <benoit@irqsave.net> |
||
---|---|---|
.. | ||
aio.h | ||
block.h | ||
block_int.h | ||
blockjob.h | ||
coroutine.h | ||
coroutine_int.h | ||
nbd.h | ||
qapi.h | ||
scsi.h | ||
snapshot.h | ||
thread-pool.h |