This series adds a blockdev-add QMP command and a row of cleanup patches to separate legacy -drive/drive_add behaviour from blockdev_init() to the wrapper function drive_init().
v2: - Removed I/O throttling and copy-on-read options from the schema: Both are candidates for becoming block filters instead. For the time being, you can use the existing QMP commands in order to enable I/O throttling on a device created with blockdev-add in a second step. - Fixed some error paths in drive_init() - Fixed segfault on drive_del for a device added with blockdev-add - Minor cleanups and fixes to code and documentation v3: - Fixed an error path in qmp_blockdev_add() - Updated formatting of QAPI schema comments - Removed I/O throttling from documentation (QMP example) - Fixed typo in unused help text while moving it Kevin Wolf (17): qapi-types/visit.py: Pass whole expr dict for structs qapi-types/visit.py: Inheritance for structs blockdev: Introduce DriveInfo.enable_auto_del blockdev: 'blockdev-add' QMP command blockdev: Separate ID generation from DriveInfo creation blockdev: Pass QDict to blockdev_init() blockdev: Move parsing of 'media' option to drive_init blockdev: Move parsing of 'if' option to drive_init blockdev: Moving parsing of geometry options to drive_init blockdev: Move parsing of 'boot' option to drive_init blockdev: Move bus/unit/index processing to drive_init blockdev: Move virtio-blk device creation to drive_init blockdev: Remove IF_* check for read-only blockdev_init qemu-iotests: Check autodel behaviour for device_del blockdev: Remove 'media' parameter from blockdev_init() blockdev: Don't disable COR automatically with blockdev-add blockdev: blockdev_init() error conversion block.c | 9 +- blockdev.c | 669 +++++++++++++++++++++++---------------- docs/qapi-code-gen.txt | 17 + hw/block/m25p80.c | 5 + hw/block/xen_disk.c | 5 + hw/sd/milkymist-memcard.c | 4 + hw/sd/omap_mmc.c | 6 + hw/sd/pl181.c | 4 + hw/sd/pxa2xx_mmci.c | 3 + hw/sd/sd.c | 5 + hw/sd/sdhci.c | 3 + hw/sd/ssi-sd.c | 3 + include/qemu/option.h | 1 + include/sysemu/blockdev.h | 1 + qapi-schema.json | 236 ++++++++++++++ qmp-commands.hx | 55 ++++ scripts/qapi-types.py | 15 +- scripts/qapi-visit.py | 26 +- tests/qemu-iotests/051.out | 5 +- tests/qemu-iotests/064 | 133 ++++++++ tests/qemu-iotests/064.out | 80 +++++ tests/qemu-iotests/common.filter | 8 + tests/qemu-iotests/group | 1 + util/qemu-option.c | 6 + 24 files changed, 1011 insertions(+), 289 deletions(-) create mode 100755 tests/qemu-iotests/064 create mode 100644 tests/qemu-iotests/064.out -- 1.8.1.4