Searched hist:"7 e6c4ff7" (Results 1 – 1 of 1) sorted by relevance
/qemu/block/ |
H A D | mirror.c | 7e6c4ff7 Tue Jan 28 15:09:28 GMT 2020 Kevin Wolf <kwolf@redhat.com> mirror: Don't let an operation wait for itself
mirror_wait_for_free_in_flight_slot() just picks a random operation to wait for. However, when mirror_co_read() waits for free slots, its MirrorOp is already in s->ops_in_flight, so if not enough slots are immediately available, an operation can end up waiting for itself to complete, which results in a hang.
Fix this by passing the current MirrorOp and skipping this operation when picking an operation to wait for.
Fixes: https://bugzilla.redhat.com/show_bug.cgi?id=1794692 Signed-off-by: Kevin Wolf <kwolf@redhat.com> Reviewed-by: Eric Blake <eblake@redhat.com>
|