Instead of constantly keeping complaining that we need this big -blockdev things, let's start attacking individual parts of the project. Here is the first part, allowing block drivers to provide additional -drive options.
Any options that isn't processed by the block layer is passed to the driver which can use them. If it doesn't, you get an error message like today. At the end of this series you can specify: -drive file=test.qcow2,lazy_refcounts=on This doesn't include a way to specify options for backing files yet, but I don't think there's anything blocking such extensions on top. Kevin Wolf (7): block: Add options QDict to .bdrv_open() block: Add options QDict to bdrv_open() prototype Add qdict_clone_shallow() block: Add options QDict to bdrv_open_common() qemu-option: Add qemu_opts_absorb_qdict() block: Support driver specific options in drive_init() qcow2: Allow lazy refcounts to be enabled on the command line block.c | 81 ++++++++++++++++++++++++++++++++++++----------- block/blkverify.c | 2 +- block/bochs.c | 2 +- block/cloop.c | 2 +- block/cow.c | 2 +- block/dmg.c | 2 +- block/parallels.c | 2 +- block/qcow.c | 2 +- block/qcow2-cluster.c | 2 +- block/qcow2.c | 43 +++++++++++++++++++++++-- block/qcow2.h | 1 + block/qed.c | 4 +-- block/raw.c | 2 +- block/vdi.c | 2 +- block/vmdk.c | 4 +-- block/vpc.c | 2 +- block/vvfat.c | 2 +- blockdev.c | 53 ++++++++++++++++++++++++++----- hw/xen_disk.c | 2 +- include/block/block.h | 4 +-- include/block/block_int.h | 3 +- include/qapi/qmp/qdict.h | 2 ++ include/qemu/option.h | 1 + qemu-img.c | 6 ++-- qemu-io.c | 2 +- qemu-nbd.c | 2 +- qobject/qdict.c | 22 +++++++++++++ util/qemu-option.c | 34 ++++++++++++++++++++ 28 files changed, 233 insertions(+), 55 deletions(-) -- 1.8.1.2