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>

Reply via email to