On 13.12.2013 14:22, Kevin Wolf wrote:
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 <kw...@redhat.com>
---
block.c | 26 +++++++++++++++++++++++---
include/block/block_int.h | 2 ++
2 files changed, 25 insertions(+), 3 deletions(-)
Reviewed-by: Max Reitz <mre...@redhat.com>