diff options
author | Vladimir Sementsov-Ogievskiy <vsementsov@virtuozzo.com> | 2021-07-03 00:16:36 +0300 |
---|---|---|
committer | Kevin Wolf <kwolf@redhat.com> | 2021-07-20 13:14:45 +0200 |
commit | d44dae1a7cf782ec9235746ebb0e6c1a20dd7288 (patch) | |
tree | ca473538c698f1375c84a3eb9968f9d0d6eb508e /block.c | |
parent | e0f69d83d5c5c039b133b60b5a7130dedeeaca42 (diff) |
block/mirror: fix active mirror dead-lock in mirror_wait_on_conflicts
It's possible that requests start to wait each other in
mirror_wait_on_conflicts(). To avoid it let's use same technique as in
block/io.c in bdrv_wait_serialising_requests_locked() /
bdrv_find_conflicting_request(): don't wait on intersecting request if
it is already waiting for some other request.
For details of the dead-lock look at testIntersectingActiveIO()
test-case which we actually fixing now.
Fixes: d06107ade0ce74dc39739bac80de84b51ec18546
Signed-off-by: Vladimir Sementsov-Ogievskiy <vsementsov@virtuozzo.com>
Message-Id: <20210702211636.228981-4-vsementsov@virtuozzo.com>
Signed-off-by: Kevin Wolf <kwolf@redhat.com>
Diffstat (limited to 'block.c')
0 files changed, 0 insertions, 0 deletions