mirror_qemu/block
Kevin Wolf e24e49e619 qcow2: Update whole header at once
In order to switch the backing file, qcow2 issues multiple write
requests that only changed a part of the image header. Any failure after
the first one would leave the header in an corrupted state. With this
patch, the whole header is written at once, so we can't fail in the
middle.

At the same time, this gives us a reusable functions that updates all
fields of the qcow2 header and not only the backing file.

Signed-off-by: Kevin Wolf <kwolf@redhat.com>
2012-02-09 16:17:51 +01:00
..
blkdebug.c block: replace unchecked strdup/malloc/calloc with glib 2012-01-26 11:39:03 +01:00
blkverify.c block: replace unchecked strdup/malloc/calloc with glib 2012-01-26 11:39:03 +01:00
bochs.c block: take lock around bdrv_read implementations 2011-10-21 17:34:14 +02:00
cloop.c block/cloop: Use g_free instead of free 2011-11-04 14:24:12 +01:00
cow.c block/cow: Return real error code 2011-12-15 12:40:33 +01:00
curl.c block: qemu_aio_get does not return NULL 2011-12-15 12:40:08 +01:00
dmg.c block: take lock around bdrv_read implementations 2011-10-21 17:34:14 +02:00
iscsi.c iSCSI: add configuration variables for iSCSI 2012-02-09 16:17:50 +01:00
nbd.c nbd: add support for NBD_CMD_TRIM 2011-12-22 11:53:57 +01:00
parallels.c block: take lock around bdrv_read implementations 2011-10-21 17:34:14 +02:00
qcow.c qcow: Use bdrv functions to replace file operation 2012-01-26 14:49:18 +01:00
qcow2-cache.c Use glib memory allocation and free functions 2011-08-20 23:01:08 -05:00
qcow2-cluster.c qcow2: avoid reentrant bdrv_read() in copy_sectors() 2011-12-05 14:49:47 +01:00
qcow2-refcount.c qcow2: Fix order of refcount updates in qcow2_snapshot_goto 2011-12-05 14:51:36 +01:00
qcow2-snapshot.c qcow2: Allow >4 GB VM state 2011-12-15 12:40:33 +01:00
qcow2.c qcow2: Update whole header at once 2012-02-09 16:17:51 +01:00
qcow2.h qcow2: Update whole header at once 2012-02-09 16:17:51 +01:00
qed-check.c Use glib memory allocation and free functions 2011-08-20 23:01:08 -05: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 Use glib memory allocation and free functions 2011-08-20 23:01:08 -05:00
qed-table.c block: bdrv_aio_* do not return NULL 2011-12-15 12:40:07 +01:00
qed.c qed: add .bdrv_co_write_zeroes() support 2012-02-09 16:17:50 +01:00
qed.h qed: add .bdrv_co_write_zeroes() support 2012-02-09 16:17:50 +01:00
raw-posix-aio.h prepare for future GPLv2+ relicensing 2012-01-13 10:55:56 -06:00
raw-posix.c fix spelling in block sub directory 2011-12-02 10:50:57 +00:00
raw-win32.c block: Rename bdrv_co_flush to bdrv_co_flush_to_disk 2011-11-11 14:02:59 +01:00
raw.c block: Rename bdrv_co_flush to bdrv_co_flush_to_disk 2011-11-11 14:02:59 +01:00
rbd.c rbd: wire up snapshot removal and rollback functionality 2012-01-26 11:39:03 +01:00
sheepdog.c prepare for future GPLv2+ relicensing 2012-01-13 10:55:56 -06:00
stream.c block: add support for partial streaming 2012-01-26 14:49:18 +01:00
vdi.c block/vdi: Zero unused parts when allocating a new block (fix #919242) 2012-01-26 14:49:18 +01:00
vmdk.c block: convert qcow2, qcow2, and vmdk to .bdrv_co_is_allocated() 2011-12-05 14:51:37 +01:00
vpc.c vpc: Round up image size during fixed image creation 2012-02-09 16:17:51 +01:00
vvfat.c vvfat: avoid leaking file descriptor in commit_one_file() 2012-01-13 10:36:59 +00:00