qemu/block
Kevin Wolf 5365f44dfa qcow2: Add .bdrv_join_options callback
qcow2 accepts a few driver-specific options that overlap semantically
(e.g. "overlap-check" is an alias of "overlap-check.template", and any
missing cache size option is derived from the given ones).

When bdrv_reopen() merges the set of updated options with left out
options that should be kept at their old value, we need to consider this
and filter out any duplicates (which would generally cause errors
because new and old value would contradict each other).

This patch adds a .bdrv_join_options callback to BlockDriver and
implements it for qcow2.

Signed-off-by: Kevin Wolf <kwolf@redhat.com>
Reviewed-by: Max Reitz <mreitz@redhat.com>
Reviewed-by: Alberto Garcia <berto@igalia.com>
2015-12-18 14:34:42 +01:00
..
accounting.c block: Update copyright of the accounting code 2015-11-12 16:22:47 +01:00
archipelago.c block: remove superfluous '\n' around error_report/error_setg 2015-03-10 08:15:33 +03:00
backup.c block: Don't wait serialising for non-COR read requests 2015-12-03 11:08:07 +08:00
blkdebug.c qapi: Don't let implicit enum MAX member collide 2015-12-17 08:21:28 +01:00
blkverify.c blkverify: Fix BDS leak in .bdrv_open error path 2015-10-16 15:34:30 +02:00
block-backend.c block: add blk_abort_aio_request 2015-11-17 15:06:21 -05:00
bochs.c block: Convert bs->file to BdrvChild 2015-10-16 15:34:29 +02:00
cloop.c block: Convert bs->file to BdrvChild 2015-10-16 15:34:29 +02:00
commit.c commit: reopen overlay_bs before base 2015-11-11 16:25:47 +01:00
curl.c aio: Add "is_external" flag for event handlers 2015-10-23 18:18:23 +02:00
dmg.c block: Convert bs->file to BdrvChild 2015-10-16 15:34:29 +02:00
gluster.c gluster: allocate GlusterAIOCBs on the stack 2015-11-11 10:45:39 -05:00
io.c block: Don't wait serialising for non-COR read requests 2015-12-03 11:08:07 +08:00
iscsi.c block: Drop BlockDriver.bdrv_ioctl 2015-11-12 16:22:43 +01:00
linux-aio.c aio: Add "is_external" flag for event handlers 2015-10-23 18:18:23 +02:00
Makefile.objs block: convert quorum blockdrv to use crypto APIs 2015-07-08 13:11:01 +02:00
mirror.c mirror: Quiesce source during "mirror_exit" 2015-12-02 10:44:06 -05:00
nbd-client.c aio: Add "is_external" flag for event handlers 2015-10-23 18:18:23 +02:00
nbd-client.h nbd: Set block size to BDRV_SECTOR_SIZE 2015-03-18 12:07:01 +01:00
nbd.c block: Convert to new qapi union layout 2015-11-02 08:30:27 +01:00
nfs.c aio: Add "is_external" flag for event handlers 2015-10-23 18:18:23 +02:00
null.c block/null: Support reopen 2015-04-28 15:36:09 +02:00
parallels.c qapi: Don't let implicit enum MAX member collide 2015-12-17 08:21:28 +01:00
qapi.c qobject: Rename qtype_code to QType 2015-12-17 08:21:28 +01:00
qcow2-cache.c block: Convert bs->file to BdrvChild 2015-10-16 15:34:29 +02:00
qcow2-cluster.c qcow2: Fix qcow2_get_cluster_offset() for zero clusters 2015-11-11 16:55:29 +01:00
qcow2-refcount.c qcow2: Fix potential qemu-img check crash on 32 bit hosts 2015-12-02 13:22:29 +01:00
qcow2-snapshot.c block: Convert bs->file to BdrvChild 2015-10-16 15:34:29 +02:00
qcow2.c qcow2: Add .bdrv_join_options callback 2015-12-18 14:34:42 +01:00
qcow2.h coroutine: move into libqemuutil.a library 2015-10-20 14:59:04 +01:00
qcow.c block: Convert bs->backing_hd to BdrvChild 2015-10-16 15:34:29 +02:00
qed-check.c block: Use g_new() & friends to avoid multiplying sizes 2014-08-20 11:51:28 +02:00
qed-cluster.c Use glib memory allocation and free functions 2011-08-20 23:01:08 -05:00
qed-gencb.c block: Rename BlockDriverCompletionFunc to BlockCompletionFunc 2014-10-20 13:41:27 +02: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 block: Convert bs->file to BdrvChild 2015-10-16 15:34:29 +02:00
qed.c qed: Implement .bdrv_drain 2015-11-12 16:22:43 +01:00
qed.h qed: Really remove unused field QEDAIOCB.finished 2015-02-06 17:24:21 +01:00
quorum.c qapi: Don't let implicit enum MAX member collide 2015-12-17 08:21:28 +01:00
raw_bsd.c block: Drop BlockDriver.bdrv_ioctl 2015-11-12 16:22:43 +01:00
raw-aio.h linux-aio: drop return code from laio_io_unplug and ioq_submit 2014-12-12 16:57:55 +00:00
raw-posix.c qapi: Don't let implicit enum MAX member collide 2015-12-17 08:21:28 +01:00
raw-win32.c block: switch from g_slice allocator to malloc 2015-10-12 11:17:45 +01:00
rbd.c rbd: fix ceph settings precedence 2015-07-14 17:15:23 +02:00
sheepdog.c aio: Add "is_external" flag for event handlers 2015-10-23 18:18:23 +02:00
snapshot.c migration: implement bdrv_all_find_vmstate_bs helper 2015-11-19 11:50:00 +01:00
ssh.c aio: Add "is_external" flag for event handlers 2015-10-23 18:18:23 +02:00
stream.c block: Move I/O status and error actions into BB 2015-10-23 18:18:23 +02:00
throttle-groups.c throttle: Check for pending requests in throttle_group_unregister_bs() 2015-11-11 16:25:47 +01:00
vdi.c coroutine: move into libqemuutil.a library 2015-10-20 14:59:04 +01:00
vhdx-endian.c block: VHDX endian fixes 2014-08-15 15:07:14 +02:00
vhdx-log.c block: Convert bs->file to BdrvChild 2015-10-16 15:34:29 +02:00
vhdx.c block: Convert bs->file to BdrvChild 2015-10-16 15:34:29 +02:00
vhdx.h block: vhdx - update PAYLOAD_BLOCK_UNMAPPED value to match 1.00 spec 2014-12-12 15:42:22 +00:00
vmdk.c block: Convert to new qapi union layout 2015-11-02 08:30:27 +01:00
vpc.c block: Convert bs->file to BdrvChild 2015-10-16 15:34:29 +02:00
vvfat.c block: Remove bdrv_swap() 2015-10-16 15:34:30 +02:00
win32-aio.c aio: Add "is_external" flag for event handlers 2015-10-23 18:18:23 +02:00
write-threshold.c coroutine: move into libqemuutil.a library 2015-10-20 14:59:04 +01:00