qemu/block
Kevin Wolf d1ea98d56d qcow2: Rework qcow2_snapshot_create error handling
Increase refcounts only after allocating a new L1 table has succeeded in
order to make leaks less likely. If writing the snapshot table fails,
revert in-memory state to be consistent with that on disk.

While at it, make it return the real error codes instead of -1.

Signed-off-by: Kevin Wolf <kwolf@redhat.com>
Reviewed-by: Stefan Hajnoczi <stefanha@linux.vnet.ibm.com>
2011-12-05 14:51:36 +01:00
..
blkdebug.c block: drop redundant bdrv_flush implementation 2011-10-21 17:34:13 +02:00
blkverify.c block: drop redundant bdrv_flush implementation 2011-10-21 17:34:13 +02: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: Use bdrv functions to replace file operation in cow.c 2011-12-05 14:51:35 +01:00
curl.c block/curl: Don't finish AIOCBs too early 2011-09-21 15:16:04 +02:00
dmg.c block: take lock around bdrv_read implementations 2011-10-21 17:34:14 +02:00
iscsi.c iSCSI block driver 2011-10-28 19:25:48 +02:00
nbd.c block: take lock around bdrv_write implementations 2011-10-21 17:34:14 +02:00
parallels.c block: take lock around bdrv_read implementations 2011-10-21 17:34:14 +02: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: remove unused qcow2_create_refcount_update function 2011-08-25 15:23:10 +02:00
qcow2-snapshot.c qcow2: Rework qcow2_snapshot_create error handling 2011-12-05 14:51:36 +01:00
qcow2.c qcow2: Return real error code in qcow2_read_snapshots 2011-12-05 14:51:35 +01:00
qcow2.h qcow2: implement bdrv_invalidate_cache (v2) 2011-11-21 14:58:48 -06:00
qcow.c block: Add coroutine_fn marker to coroutine functions 2011-12-05 14:51:35 +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 qed: adjust the way to get nb_sectors 2011-12-05 14:51:34 +01:00
qed.c qed: add migration blocker (v2) 2011-11-21 14:58:48 -06:00
qed.h qed: add migration blocker (v2) 2011-11-21 14:58:48 -06:00
raw-posix-aio.h Remove aio_ctx from paio_* interface 2009-10-30 08:39:34 -05:00
raw-posix.c block: change discard to co_discard 2011-10-21 17:34:14 +02: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 block: Rename bdrv_co_flush to bdrv_co_flush_to_disk 2011-11-11 14:02:59 +01:00
sheepdog.c block: Add coroutine_fn marker to coroutine functions 2011-12-05 14:51:35 +01:00
vdi.c vdi: Fix memory leak 2011-11-23 17:04:05 +01:00
vmdk.c vmdk: Add migration blocker 2011-11-23 17:04:03 +01:00
vpc.c vpc: Add missing error handling in alloc_block 2011-11-23 17:04:06 +01:00
vvfat.c vvfat: Add migration blocker 2011-11-23 17:04:05 +01:00