From: Kevin Wolf <kw...@redhat.com> The unlock wakes up the next coroutine, but the currently running coroutine will lock it again before it yields, so this doesn't make a lot of sense.
Signed-off-by: Kevin Wolf <kw...@redhat.com> Signed-off-by: Stefan Hajnoczi <stefa...@redhat.com> --- block/qcow2.c | 2 -- 1 file changed, 2 deletions(-) diff --git a/block/qcow2.c b/block/qcow2.c index 8ea696a..3f7edf5 100644 --- a/block/qcow2.c +++ b/block/qcow2.c @@ -869,9 +869,7 @@ static coroutine_fn int qcow2_co_writev(BlockDriverState *bs, QLIST_REMOVE(l2meta, next_in_flight); } - qemu_co_mutex_unlock(&s->lock); qemu_co_queue_restart_all(&l2meta->dependent_requests); - qemu_co_mutex_lock(&s->lock); g_free(l2meta); l2meta = NULL; -- 1.8.1.4