qemu/block
Max Reitz abc521a9aa block: Add BlockDriver.bdrv_gather_child_options
Some follow-up patches will rework the way bs->full_open_options is
refreshed in bdrv_refresh_filename(). The new implementation will remove
the need for the block drivers' bdrv_refresh_filename() implementations
to set bs->full_open_options; instead, it will be generic and use static
information from each block driver.

However, by implementing bdrv_gather_child_options(), block drivers will
still be able to override the way the full_open_options of their
children are incorporated into their own.

We need to implement this function for VMDK because we have to prevent
the generic implementation from gathering the options of all children:
It is not possible to specify options for the extents through the
runtime options.

For quorum, the child names that would be used by the generic
implementation and the ones that we actually (currently) want to use
differ. See quorum_gather_child_options() for more information.

Note that both of these are cases which are not ideal: In case of VMDK
it would probably be nice to be able to specify options for all extents.
In case of quorum, the current runtime option structure is simply broken
and needs to be fixed (but that is left for another patch).

Signed-off-by: Max Reitz <mreitz@redhat.com>
Reviewed-by: Alberto Garcia <berto@igalia.com>
Message-id: 20190201192935.18394-23-mreitz@redhat.com
Signed-off-by: Max Reitz <mreitz@redhat.com>
2019-02-25 15:11:27 +01:00
..
accounting.c block/accounting: introduce latency histogram 2018-03-19 14:58:37 -05:00
backup.c Revert "hbitmap: Add @advance param to hbitmap_iter_next()" 2019-01-15 18:26:50 -05:00
blkdebug.c block: Add strong_runtime_opts to BlockDriver 2019-02-25 15:11:27 +01:00
blklogwrites.c block: Add strong_runtime_opts to BlockDriver 2019-02-25 15:11:27 +01:00
blkreplay.c trivial: Make bios files and source files non-executable 2018-09-25 17:26:18 +02:00
blkverify.c blkverify: Make bdrv_dirname() return NULL 2019-02-25 15:11:26 +01:00
block-backend.c block-backend: Make blk_inc/dec_in_flight public 2019-02-25 15:03:19 +01:00
bochs.c avoid TABs in files that only contain a few 2019-01-11 15:46:56 +01:00
cloop.c block: Require auto-read-only for existing fallbacks 2018-11-05 15:09:55 +01:00
commit.c block: Use children list in bdrv_refresh_filename 2019-02-25 15:11:25 +01:00
copy-on-read.c block: drop empty .bdrv_close handlers 2018-08-15 12:50:39 +02:00
create.c jobs: utilize job_exit shim 2018-08-31 16:28:33 +02:00
crypto.c block: Add strong_runtime_opts to BlockDriver 2019-02-25 15:11:27 +01:00
crypto.h block/crypto: Simplify block_crypto_{open,create}_opts_init() 2018-06-29 14:20:56 +02:00
curl.c block: Add strong_runtime_opts to BlockDriver 2019-02-25 15:11:27 +01:00
dirty-bitmap.c block/dirty-bitmap: Documentation and Comment fixups 2019-02-19 17:49:43 -05:00
dmg-bz2.c dmg: Move libbz2 code to dmg-bz2.so 2016-10-07 14:14:06 +02:00
dmg-lzfse.c block: adding lzfse decompressing support as a module. 2018-12-14 11:52:40 +01:00
dmg.c dmg: don't skip zero chunk 2019-01-04 11:15:09 +00:00
dmg.h dmg: including dmg-lzfse module inside dmg block driver. 2018-12-14 11:52:40 +01:00
file-posix.c block/file-posix: Convert from DPRINTF() macro to trace events 2019-01-31 00:38:19 +01:00
file-win32.c avoid TABs in files that only contain a few 2019-01-11 15:46:56 +01:00
gluster.c block: Add strong_runtime_opts to BlockDriver 2019-02-25 15:11:27 +01:00
io.c block: Fix hangs in synchronous APIs with iothreads 2019-02-01 13:46:44 +01:00
iscsi-opts.c Move include qemu/option.h from qemu-common.h to actual users 2018-02-09 13:52:16 +01:00
iscsi.c block: Add strong_runtime_opts to BlockDriver 2019-02-25 15:11:27 +01:00
linux-aio.c avoid TABs in files that only contain a few 2019-01-11 15:46:56 +01:00
Makefile.objs configure: adding support to lzfse library. 2018-12-14 11:52:40 +01:00
mirror.c block: Use children list in bdrv_refresh_filename 2019-02-25 15:11:25 +01:00
nbd-client.c nbd: Increase bs->in_flight during AioContext switch 2019-02-25 15:03:19 +01:00
nbd-client.h nbd: Restrict connection_co reentrance 2019-02-25 15:03:19 +01:00
nbd.c block: Add strong_runtime_opts to BlockDriver 2019-02-25 15:11:27 +01:00
nfs.c block: Add strong_runtime_opts to BlockDriver 2019-02-25 15:11:27 +01:00
null.c block: Add strong_runtime_opts to BlockDriver 2019-02-25 15:11:27 +01:00
nvme.c block: Add strong_runtime_opts to BlockDriver 2019-02-25 15:11:27 +01:00
parallels.c parallels: Switch to byte-based calls 2018-06-29 14:20:56 +02:00
parallels.h Clean up includes 2018-02-09 05:05:11 +01:00
qapi.c block: bdrv_get_full_backing_filename's ret. val. 2019-02-25 15:11:26 +01:00
qcow2-bitmap.c qcow2: Add list of bitmaps to ImageInfoSpecificQCow2 2019-02-11 14:35:43 -06:00
qcow2-cache.c qcow2: Allow configuring the L2 slice size 2018-02-13 17:00:00 +01:00
qcow2-cluster.c qcow2: Assert that L2 table offsets fit in the L1 table 2019-02-25 15:05:23 +01:00
qcow2-refcount.c qcow2: Assert that refcount block offsets fit in the refcount table 2019-02-01 13:46:44 +01:00
qcow2-snapshot.c qcow2-snapshot: remove redundant find_snapshot_by_id_and_name call 2019-02-25 15:03:19 +01:00
qcow2.c block: Add strong_runtime_opts to BlockDriver 2019-02-25 15:11:27 +01:00
qcow2.h qcow2: Add list of bitmaps to ImageInfoSpecificQCow2 2019-02-11 14:35:43 -06:00
qcow.c block: Add strong_runtime_opts to BlockDriver 2019-02-25 15:11:27 +01:00
qed-check.c block: convert bdrv_check callback to coroutine_fn 2018-03-09 15:17:47 +01:00
qed-cluster.c qed: protect table cache with CoMutex 2017-07-17 11:34:11 +08:00
qed-l2-cache.c qed: protect table cache with CoMutex 2017-07-17 11:34:11 +08:00
qed-table.c block: convert bdrv_check callback to coroutine_fn 2018-03-09 15:17:47 +01:00
qed.c block: Add BDS.auto_backing_file 2019-02-25 15:11:25 +01:00
qed.h qed: protect table cache with CoMutex 2017-07-17 11:34:11 +08:00
quorum.c block: Add BlockDriver.bdrv_gather_child_options 2019-02-25 15:11:27 +01:00
raw-format.c block: Add strong_runtime_opts to BlockDriver 2019-02-25 15:11:27 +01:00
rbd.c block: Add strong_runtime_opts to BlockDriver 2019-02-25 15:11:27 +01:00
replication.c block: Add strong_runtime_opts to BlockDriver 2019-02-25 15:11:27 +01:00
sheepdog.c block: Add strong_runtime_opts to BlockDriver 2019-02-25 15:11:27 +01:00
snapshot.c block/snapshot: remove bdrv_snapshot_delete_by_id_or_name 2019-02-25 15:03:18 +01:00
ssh.c block: Add strong_runtime_opts to BlockDriver 2019-02-25 15:11:27 +01:00
stream.c block: Use bdrv_reopen_set_read_only() in stream_start/complete() 2018-12-14 11:55:02 +01:00
throttle-groups.c throttle-groups: fix restart coroutine iothread race 2019-01-24 10:02:28 +00:00
throttle.c block: Add strong_runtime_opts to BlockDriver 2019-02-25 15:11:27 +01:00
trace-events block/sheepdog: Convert from DPRINTF() macro to trace events 2019-01-31 00:38:19 +01:00
vdi.c block: Eliminate the S_1KiB, S_2KiB, ... macros 2019-02-01 13:46:45 +01:00
vhdx-endian.c block/vhdx: Don't take address of fields in packed structs 2018-11-05 15:09:54 +01:00
vhdx-log.c block: Use bdrv_refresh_filename() to pull 2019-02-25 15:11:25 +01:00
vhdx.c block/vhdx: Don't take address of fields in packed structs 2018-11-05 15:09:54 +01:00
vhdx.h qemu/queue.h: leave head structs anonymous unless necessary 2019-01-11 15:46:55 +01:00
vmdk.c block: Add BlockDriver.bdrv_gather_child_options 2019-02-25 15:11:27 +01:00
vpc.c block: Add strong_runtime_opts to BlockDriver 2019-02-25 15:11:27 +01:00
vvfat.c block: Add strong_runtime_opts to BlockDriver 2019-02-25 15:11:27 +01:00
vxhs.c block: Add strong_runtime_opts to BlockDriver 2019-02-25 15:11:27 +01:00
win32-aio.c file-win32: Switch to byte-based callbacks 2018-05-15 16:11:41 +02:00
write-threshold.c qapi: Drop qapi_event_send_FOO()'s Error ** argument 2018-08-28 18:21:38 +02:00