qemu/block
Kevin Wolf 16fde5f2c2 qcow2: Fix order in L2 table COW
When copying L2 tables (this happens only with internal snapshots), the order
wasn't completely safe, so that after a crash you could end up with a L2 table
that has too low refcount, possibly leading to corruption in the long run.

This patch puts the operations in the right order: First allocate the new
L2 table and replace the reference, and only then decrease the refcount of the
old table.

Signed-off-by: Kevin Wolf <kwolf@redhat.com>
2011-02-10 13:24:29 +01:00
..
blkdebug.c block: Allow bdrv_flush to return errors 2010-11-04 12:52:16 +01:00
blkverify.c block: avoid a warning on 64 bit hosts with long as int64_t 2010-11-04 13:54:37 +01:00
bochs.c bochs: use qemu block API 2010-05-17 10:20:05 +02:00
cloop.c cloop: use qemu block API 2010-05-17 10:20:04 +02:00
cow.c block: Allow bdrv_flush to return errors 2010-11-04 12:52:16 +01:00
curl.c Fix %lld or %llx printf format use 2010-05-22 08:02:12 +00:00
dmg.c dmg: use qemu block API 2010-05-17 10:20:05 +02:00
nbd.c nbd: correctly manage default port 2010-09-21 15:39:42 +02:00
parallels.c parallels: use qemu block API 2010-05-17 10:20:05 +02:00
qcow.c block: Remove unused s->hd in various drivers 2010-11-24 17:31:06 +01:00
qcow2-cache.c Reorganize struct Qcow2Cache for better struct packing 2011-01-31 10:03:00 +01:00
qcow2-cluster.c qcow2: Fix order in L2 table COW 2011-02-10 13:24:29 +01:00
qcow2-refcount.c qcow2-refcount: remove write-only variables 2011-01-31 10:05:34 +01:00
qcow2-snapshot.c block/qcow2.c: rename qcow_ functions to qcow2_ 2010-12-17 16:15:01 +01:00
qcow2.c qcow2: Report error for version > 2 2011-02-10 13:23:56 +01:00
qcow2.h qcow2: Add bdrv_discard support 2011-01-31 10:03:00 +01:00
qed-check.c qed: Consistency check support 2010-12-17 16:11:04 +01:00
qed-cluster.c qed: Table, L2 cache, and cluster functions 2010-12-17 16:11:04 +01:00
qed-gencb.c qed: Table, L2 cache, and cluster functions 2010-12-17 16:11:04 +01:00
qed-l2-cache.c qed: Table, L2 cache, and cluster functions 2010-12-17 16:11:04 +01:00
qed-table.c qed: Table, L2 cache, and cluster functions 2010-12-17 16:11:04 +01:00
qed.c qed: Report error for unsupported features 2011-02-10 13:23:59 +01:00
qed.h qed: Consistency check support 2010-12-17 16:11:04 +01:00
raw-posix-aio.h Remove aio_ctx from paio_* interface 2009-10-30 08:39:34 -05:00
raw-posix.c raw-posix: add discard support 2010-12-17 16:11:03 +01:00
raw-win32.c raw-win32: Fix bdrv_flush return value 2011-01-31 10:03:00 +01:00
raw.c block: add discard support 2010-12-17 16:11:03 +01:00
rbd.c ceph/rbd block driver for qemu-kvm 2010-12-14 15:44:21 +01:00
rbd_types.h ceph/rbd block driver for qemu-kvm 2010-12-14 15:44:21 +01:00
sheepdog.c sheepdog: support creating images on remote hosts 2011-01-31 10:03:00 +01:00
vdi.c block/vdi: Fix wrong size in conditionally used memset, memcmp 2011-02-07 10:07:25 +01:00
vmdk.c block: Remove unused s->hd in various drivers 2010-11-24 17:31:06 +01:00
vpc.c vpc: fix a file descriptor leak 2011-01-12 19:49:00 +00:00
vvfat.c vvfat: fix a file descriptor leak 2011-01-12 19:48:58 +00:00