qemu/block
Max Reitz a40f1c2add qcow2: Metadata overlap checks
Two new functions are added; the first one checks a given range in the
image file for overlaps with metadata (main header, L1 tables, L2
tables, refcount table and blocks).

The second one should be used immediately before writing to the image
file as it calls the first function and, upon collision, marks the
image as corrupt and makes the BDS unusable, thereby preventing
further access.

Both functions take a bitmask argument specifying the structures which
should be checked for overlaps, making it possible to also check
metadata writes against colliding with other structures.

Signed-off-by: Max Reitz <mreitz@redhat.com>
Signed-off-by: Kevin Wolf <kwolf@redhat.com>
2013-08-30 15:48:43 +02:00
..
backup.c aio / timers: convert block_job_sleep_ns and co_sleep_ns to new API 2013-08-22 19:14:24 +02:00
blkdebug.c blkdebug: Add BLKDBG_FLUSH_TO_OS/DISK events 2013-06-06 11:27:22 +02:00
blkverify.c block: Remove filename parameter from .bdrv_file_open() 2013-04-22 11:34:35 +02:00
bochs.c block: Add options QDict to .bdrv_open() 2013-03-15 16:07:49 +01:00
cloop.c block: Add options QDict to .bdrv_open() 2013-03-15 16:07:49 +01:00
commit.c aio / timers: convert block_job_sleep_ns and co_sleep_ns to new API 2013-08-22 19:14:24 +02:00
cow.c block: change default of .has_zero_init to 0 2013-06-28 13:52:35 +02:00
curl.c aio: drop io_flush argument 2013-08-19 15:52:19 +02:00
dmg.c block: Make find_image_format safe with NULL filename 2013-03-22 17:51:32 +01:00
gluster.c gluster: Abort on AIO completion failure 2013-08-30 15:28:52 +02:00
iscsi.c aio / timers: Switch entire codebase to the new timer API 2013-08-22 19:14:24 +02:00
linux-aio.c aio: drop io_flush argument 2013-08-19 15:52:19 +02:00
Makefile.objs switch raw block driver from "raw.o" to "raw_bsd.o" 2013-08-30 15:28:52 +02:00
mirror.c aio / timers: Switch entire codebase to the new timer API 2013-08-22 19:14:24 +02:00
nbd.c aio: drop io_flush argument 2013-08-19 15:52:19 +02:00
parallels.c block: Add options QDict to .bdrv_open() 2013-03-15 16:07:49 +01:00
qapi.c qmp: add ImageInfo in BlockDeviceInfo used by query-block 2013-06-07 13:37:45 +02:00
qcow2-cache.c block: move include files to include/block/ 2012-12-19 08:31:31 +01:00
qcow2-cluster.c qcow2: Batch discards 2013-06-24 10:25:17 +02:00
qcow2-refcount.c qcow2: Metadata overlap checks 2013-08-30 15:48:43 +02:00
qcow2-snapshot.c qcow2: Add refcount update reason to all callers 2013-06-24 10:25:17 +02:00
qcow2.c qcow2: Add corrupt bit 2013-08-30 15:48:43 +02:00
qcow2.h qcow2: Metadata overlap checks 2013-08-30 15:48:43 +02:00
qcow.c block: change default of .has_zero_init to 0 2013-06-28 13:52:35 +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 aio / timers: Switch entire codebase to the new timer API 2013-08-22 19:14:24 +02:00
qed.h block: move include files to include/block/ 2012-12-19 08:31:31 +01:00
raw_bsd.c switch raw block driver from "raw.o" to "raw_bsd.o" 2013-08-30 15:28:52 +02:00
raw-aio.h block: make discard asynchronous 2013-01-15 10:03:47 +01:00
raw-posix.c block: change default of .has_zero_init to 0 2013-06-28 13:52:35 +02:00
raw-win32.c block: change default of .has_zero_init to 0 2013-06-28 13:52:35 +02:00
rbd.c aio: drop io_flush argument 2013-08-19 15:52:19 +02:00
sheepdog.c aio: drop io_flush argument 2013-08-19 15:52:19 +02:00
snapshot.c block: move snapshot code in block.c to block/snapshot.c 2013-06-04 13:56:30 +02:00
ssh.c aio: drop io_flush argument 2013-08-19 15:52:19 +02:00
stream.c aio / timers: convert block_job_sleep_ns and co_sleep_ns to new API 2013-08-22 19:14:24 +02:00
vdi.c block: change default of .has_zero_init to 0 2013-06-28 13:52:35 +02:00
vhdx.c block: add read-only support to VHDX image format. 2013-05-03 10:31:58 +02:00
vhdx.h misc: Fix new typos in comments and strings 2013-07-27 11:22:54 +04:00
vmdk.c vmdk: support vmfs files 2013-08-22 15:35:58 +02:00
vpc.c vpc: Implement .bdrv_has_zero_init 2013-06-28 10:21:00 +02:00
vvfat.c block: fix vvfat error path for enable_write_target 2013-07-19 12:29:21 +08:00
win32-aio.c win32-aio: drop win32_aio_flush_cb() 2013-08-22 22:05:04 +02:00