qemu/block
Paolo Bonzini 1e88663979 vdi: make it thread-safe
The VirtualBox driver is using a mutex to order all allocating writes,
but it is not protecting accesses to the bitmap because they implicitly
happen under the AioContext mutex.  Change this to use a CoRwlock
explicitly.

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-4-pbonzini@redhat.com>
Signed-off-by: Fam Zheng <famz@redhat.com>
2017-07-17 11:28:15 +08:00
..
accounting.c block: make accounting thread-safe 2017-06-16 07:55:00 +08:00
backup.c Convert error_report() to warn_report() 2017-07-13 13:49:58 +02:00
blkdebug.c block: Add PreallocMode to bdrv_truncate() 2017-07-11 17:45:01 +02:00
blkreplay.c block: change variable names in BlockDriverState 2017-06-26 14:54:46 +02:00
blkverify.c blkverify: Catch bs->exact_filename overflow 2017-06-26 14:54:46 +02:00
block-backend.c block: Add PreallocMode to blk_truncate() 2017-07-11 17:45:01 +02:00
bochs.c block: do not set BDS read_only if copy_on_read enabled 2017-04-24 15:09:33 -04:00
cloop.c block: do not set BDS read_only if copy_on_read enabled 2017-04-24 15:09:33 -04:00
commit.c block: Add PreallocMode to blk_truncate() 2017-07-11 17:45:01 +02:00
crypto.c block: Add PreallocMode to bdrv_truncate() 2017-07-11 17:45:01 +02:00
crypto.h qcow: convert QCow to use QCryptoBlock for encryption 2017-07-11 17:44:56 +02:00
curl.c curl: do not do aio_poll when waiting for a free CURLState 2017-05-16 10:34:50 -04:00
dirty-bitmap.c block: release persistent bitmaps on inactivate 2017-07-11 17:44:59 +02:00
dmg-bz2.c
dmg.c block: do not set BDS read_only if copy_on_read enabled 2017-04-24 15:09:33 -04:00
dmg.h
file-posix.c block/file-posix: Preallocation for truncate 2017-07-11 17:45:01 +02:00
file-win32.c block: Add PreallocMode to BD.bdrv_truncate() 2017-07-11 17:45:01 +02:00
gluster.c Error reporting patches for 2017-07-13 2017-07-14 09:36:40 +01:00
io.c block/dirty-bitmap: add readonly field to BdrvDirtyBitmap 2017-07-11 17:44:58 +02:00
iscsi-opts.c
iscsi.c Error reporting patches for 2017-07-13 2017-07-14 09:36:40 +01:00
linux-aio.c block: explicitly acquire aiocontext in aio callbacks that need it 2017-02-21 11:39:39 +00:00
Makefile.objs qcow2: add bitmaps extension 2017-07-11 17:44:57 +02:00
mirror.c block: Add PreallocMode to blk_truncate() 2017-07-11 17:45:01 +02:00
nbd-client.c nbd: Implement NBD_INFO_BLOCK_SIZE on client 2017-07-14 12:04:42 +02:00
nbd-client.h nbd: Create struct for tracking export info 2017-07-14 12:04:41 +02:00
nbd.c nbd: Implement NBD_INFO_BLOCK_SIZE on client 2017-07-14 12:04:42 +02:00
nfs.c Error reporting patches for 2017-07-13 2017-07-14 09:36:40 +01:00
null.c qobject: Use simpler QDict/QList scalar insertion macros 2017-05-09 09:13:51 +02:00
parallels.c block: Add PreallocMode to blk_truncate() 2017-07-11 17:45:01 +02:00
qapi.c block: remove all encryption handling APIs 2017-07-11 17:44:56 +02:00
qcow2-bitmap.c qcow2: add .bdrv_remove_persistent_dirty_bitmap 2017-07-11 17:44:59 +02:00
qcow2-cache.c
qcow2-cluster.c qcow2: add support for LUKS encryption format 2017-07-11 17:44:56 +02:00
qcow2-refcount.c block/qcow2: falloc/full preallocating growth 2017-07-11 17:45:02 +02:00
qcow2-snapshot.c qcow2: Discard/zero clusters by byte count 2017-05-11 14:28:07 +02:00
qcow2.c qcow2: call CoQueue APIs under CoMutex 2017-07-17 11:28:15 +08:00
qcow2.h block/qcow2: falloc/full preallocating growth 2017-07-11 17:45:02 +02:00
qcow.c block: Add PreallocMode to blk_truncate() 2017-07-11 17:45:01 +02:00
qed-check.c
qed-cluster.c qed: Add coroutine_fn to I/O path functions 2017-06-26 14:51:15 +02:00
qed-l2-cache.c
qed-table.c qed: Remove callback from qed_write_table() 2017-06-26 14:51:14 +02:00
qed.c block: Add PreallocMode to blk_truncate() 2017-07-11 17:45:01 +02:00
qed.h qed: Add coroutine_fn to I/O path functions 2017-06-26 14:51:15 +02:00
quorum.c qapi: merge QInt and QFloat in QNum 2017-06-20 14:31:31 +02:00
raw-format.c block: Add PreallocMode to bdrv_truncate() 2017-07-11 17:45:01 +02:00
rbd.c Error reporting patches for 2017-07-13 2017-07-14 09:36:40 +01:00
replication.c block: Make bdrv_is_allocated_above() byte-based 2017-07-10 13:18:07 +02:00
sheepdog.c block: Add PreallocMode to BD.bdrv_truncate() 2017-07-11 17:45:01 +02:00
snapshot.c qobject: Use simpler QDict/QList scalar insertion macros 2017-05-09 09:13:51 +02:00
ssh.c Convert error_report() to warn_report() 2017-07-13 13:49:58 +02:00
stream.c block: Make bdrv_is_allocated_above() byte-based 2017-07-10 13:18:07 +02:00
throttle-groups.c throttle: Update throttle-groups.c documentation 2017-06-26 14:51:13 +02:00
trace-events trace: Show blockjob actions via bytes, not sectors 2017-07-10 13:18:06 +02:00
vdi.c vdi: make it thread-safe 2017-07-17 11:28:15 +08:00
vhdx-endian.c
vhdx-log.c block: Add PreallocMode to bdrv_truncate() 2017-07-11 17:45:01 +02:00
vhdx.c block: Add PreallocMode to blk_truncate() 2017-07-11 17:45:01 +02:00
vhdx.h
vmdk.c block: Add PreallocMode to blk_truncate() 2017-07-11 17:45:01 +02:00
vpc.c block: Add PreallocMode to blk_truncate() 2017-07-11 17:45:01 +02:00
vvfat.c block: Make bdrv_is_allocated() byte-based 2017-07-10 13:18:07 +02:00
vxhs.c qobject: Use simpler QDict/QList scalar insertion macros 2017-05-09 09:13:51 +02:00
win32-aio.c block: explicitly acquire aiocontext in aio callbacks that need it 2017-02-21 11:39:39 +00:00
write-threshold.c