qemu-e2k/block
Max Reitz fda74f826b qcow2: Switch L1 table in a single sequence
Switching the L1 table in memory should be an atomic operation, as far
as possible. Calling qcow2_free_clusters on the old L1 table on disk is
not a good idea when the old L1 table is no longer valid and the address
to the new one hasn't yet been written into the corresponding
BDRVQcowState field. To be more specific, this can lead to segfaults due
to qcow2_check_metadata_overlap trying to access the L1 table during the
free operation.

Signed-off-by: Max Reitz <mreitz@redhat.com>
Reviewed-by: Eric Blake <eblake@redhat.com>
Reviewed-by: Kevin Wolf <kwolf@redhat.com>
Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>
2013-10-02 15:38:29 +02:00
..
Makefile.objs switch raw block driver from "raw.o" to "raw_bsd.o" 2013-08-30 15:28:52 +02:00
backup.c block: make bdrv_co_is_allocated static 2013-09-06 15:25:08 +02:00
blkdebug.c block: Error parameter for open functions 2013-09-12 10:12:48 +02:00
blkverify.c block: Error parameter for open functions 2013-09-12 10:12:48 +02:00
bochs.c bdrv: Use "Error" for opening images 2013-09-12 10:12:47 +02:00
cloop.c bdrv: Use "Error" for opening images 2013-09-12 10:12:47 +02:00
commit.c block: remove bdrv_is_allocated_above/bdrv_co_is_allocated_above distinction 2013-09-06 15:25:09 +02:00
cow.c block: Error parameter for create functions 2013-09-12 10:12:48 +02:00
curl.c bdrv: Use "Error" for opening images 2013-09-12 10:12:47 +02:00
dmg.c bdrv: Use "Error" for opening images 2013-09-12 10:12:47 +02:00
gluster.c block: introduce BlockDriver.bdrv_needs_filename to enable some drivers. 2013-09-25 16:21:28 +02:00
iscsi.c block: introduce BlockDriver.bdrv_needs_filename to enable some drivers. 2013-09-25 16:21:28 +02:00
linux-aio.c aio: drop io_flush argument 2013-08-19 15:52:19 +02:00
mirror.c block: Error parameter for open functions 2013-09-12 10:12:48 +02:00
nbd.c bdrv: Use "Error" for opening images 2013-09-12 10:12:47 +02:00
parallels.c bdrv: Use "Error" for opening images 2013-09-12 10:12:47 +02:00
qapi.c block: Add iops_size to do the iops accounting for a given io size. 2013-09-06 15:25:07 +02:00
qcow.c block: Error parameter for create functions 2013-09-12 10:12:48 +02:00
qcow2-cache.c qcow2-cache: Empty cache 2013-09-12 10:12:46 +02:00
qcow2-cluster.c qcow2: Switch L1 table in a single sequence 2013-10-02 15:38:29 +02:00
qcow2-refcount.c qcow2: CHECK_OFLAG_COPIED is obsolete 2013-10-02 11:40:41 +02:00
qcow2-snapshot.c qcow2: Correct snapshots size for overlap check 2013-09-20 12:48:03 +02:00
qcow2.c block: qcow2 - used QEMU_PACKED for on-disk structures 2013-09-25 20:51:13 +02:00
qcow2.h block: qcow2 - used QEMU_PACKED for on-disk structures 2013-09-25 20:51:13 +02:00
qed-check.c qed: mark image clean after repair succeeds 2012-08-10 10:25:12 +02:00
qed-cluster.c Use glib memory allocation and free functions 2011-08-20 23:01:08 -05:00
qed-gencb.c Use glib memory allocation and free functions 2011-08-20 23:01:08 -05:00
qed-l2-cache.c qed: do not evict in-use L2 table cache entries 2012-03-12 15:14:06 +01:00
qed-table.c misc: move include files to include/qemu/ 2012-12-19 08:32:39 +01:00
qed.c block: Error parameter for create functions 2013-09-12 10:12:48 +02:00
qed.h block: qed - use QEMU_PACKED for on-disk structures 2013-09-25 20:51:15 +02:00
raw-aio.h block: make discard asynchronous 2013-01-15 10:03:47 +01:00
raw-posix.c block: introduce BlockDriver.bdrv_needs_filename to enable some drivers. 2013-09-25 16:21:28 +02:00
raw-win32.c block: introduce BlockDriver.bdrv_needs_filename to enable some drivers. 2013-09-25 16:21:28 +02:00
raw_bsd.c block: Error parameter for create functions 2013-09-12 10:12:48 +02:00
rbd.c rbd: avoid qemu_rbd_snap_list() memory leaks 2013-09-25 16:22:00 +02:00
sheepdog.c block: introduce BlockDriver.bdrv_needs_filename to enable some drivers. 2013-09-25 16:21:28 +02:00
snapshot.c bdrv: Use "Error" for opening images 2013-09-12 10:12:47 +02:00
ssh.c bdrv: Use "Error" for creating images 2013-09-12 10:12:48 +02:00
stream.c block: Fix compiler warning (-Werror=uninitialized) 2013-09-25 16:21:28 +02:00
vdi.c block: vdi - use QEMU_PACKED for on-disk structures 2013-09-25 20:51:05 +02:00
vhdx.c block: vhdx - add migration blocker 2013-10-02 15:24:39 +02:00
vhdx.h misc: Fix new typos in comments and strings 2013-07-27 11:22:54 +04:00
vmdk.c vmdk: fix cluster size check for flat extents 2013-09-25 16:21:28 +02:00
vpc.c block: vpc - use QEMU_PACKED for on-disk structures 2013-09-25 20:51:10 +02:00
vvfat.c block: Error parameter for create functions 2013-09-12 10:12:48 +02:00
win32-aio.c win32-aio: drop win32_aio_flush_cb() 2013-08-22 22:05:04 +02:00