]> git.proxmox.com Git - mirror_qemu.git/blobdiff - block/qcow2.c
qcow2: call CoQueue APIs under CoMutex
[mirror_qemu.git] / block / qcow2.c
index c144ea56201d834139b440a5e7029ce1988a37f0..d5790af1e079c75eb9b7bac4aca5be504e0efc73 100644 (file)
@@ -2025,8 +2025,6 @@ static coroutine_fn int qcow2_co_pwritev(BlockDriverState *bs, uint64_t offset,
     ret = 0;
 
 fail:
-    qemu_co_mutex_unlock(&s->lock);
-
     while (l2meta != NULL) {
         QCowL2Meta *next;
 
@@ -2040,6 +2038,8 @@ fail:
         l2meta = next;
     }
 
+    qemu_co_mutex_unlock(&s->lock);
+
     qemu_iovec_destroy(&hd_qiov);
     qemu_vfree(cluster_data);
     trace_qcow2_writev_done_req(qemu_coroutine_self(), ret);