]> xenbits.xensource.com Git - qemu-xen.git/commitdiff
vvfat: make it thread-safe
authorPaolo Bonzini <pbonzini@redhat.com>
Thu, 29 Jun 2017 13:27:43 +0000 (15:27 +0200)
committerFam Zheng <famz@redhat.com>
Mon, 17 Jul 2017 03:28:15 +0000 (11:28 +0800)
Reviewed-by: Eric Blake <eblake@redhat.com>
Reviewed-by: Stefan Hajnoczi <stefanha@redhat.com>
Reviewed-by: Fam Zheng <famz@redhat.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Message-Id: <20170629132749.997-6-pbonzini@redhat.com>
Signed-off-by: Fam Zheng <famz@redhat.com>
block/vvfat.c

index 4fd28e1e87abc996ab27d0302d718a3502a9bfd0..4dae79020311b1f191ff52d3fd221c4bac672b0c 100644 (file)
@@ -3078,8 +3078,14 @@ static int coroutine_fn
 write_target_commit(BlockDriverState *bs, uint64_t offset, uint64_t bytes,
                     QEMUIOVector *qiov, int flags)
 {
+    int ret;
+
     BDRVVVFATState* s = *((BDRVVVFATState**) bs->opaque);
-    return try_commit(s);
+    qemu_co_mutex_lock(&s->lock);
+    ret = try_commit(s);
+    qemu_co_mutex_unlock(&s->lock);
+
+    return ret;
 }
 
 static void write_target_close(BlockDriverState *bs) {