-
Kevin Wolf authored
Waiting in blk_wait_while_drained() while blk->in_flight is increased for the current request is wrong because it will cause the drain operation to deadlock. This patch makes sure that blk_wait_while_drained() is called with blk->in_flight increased exactly once for the current request, and that it temporarily decreases the counter while it waits. Fixes: cf312932 Signed-off-by:
Kevin Wolf <kwolf@redhat.com>
Reviewed-by:
Vladimir Sementsov-Ogievskiy <vsementsov@virtuozzo.com>
Reviewed-by:
Max Reitz <mreitz@redhat.com>
Message-Id: <20200407121259.21350-4-kwolf@redhat.com>
Signed-off-by:
Kevin Wolf <kwolf@redhat.com>Kevin Wolf authoredWaiting in blk_wait_while_drained() while blk->in_flight is increased for the current request is wrong because it will cause the drain operation to deadlock. This patch makes sure that blk_wait_while_drained() is called with blk->in_flight increased exactly once for the current request, and that it temporarily decreases the counter while it waits. Fixes: cf312932 Signed-off-by:
Kevin Wolf <kwolf@redhat.com>
Reviewed-by:
Vladimir Sementsov-Ogievskiy <vsementsov@virtuozzo.com>
Reviewed-by:
Max Reitz <mreitz@redhat.com>
Message-Id: <20200407121259.21350-4-kwolf@redhat.com>
Signed-off-by:
Kevin Wolf <kwolf@redhat.com>
Loading