Branch: refs/heads/master Home: https://github.com/qemu/qemu Commit: f87e08f9e24b43d123bbbafd3348bf0f3d67c31a https://github.com/qemu/qemu/commit/f87e08f9e24b43d123bbbafd3348bf0f3d67c31a Author: Daniel P. Berrange <berra...@redhat.com> Date: 2018-03-09 (Fri, 09 Mar 2018)
Changed paths: M block/crypto.c Log Message: ----------- block: implement the bdrv_reopen_prepare helper for LUKS driver If the bdrv_reopen_prepare helper isn't provided, the qemu-img commit command fails to re-open the base layer after committing changes into it. Provide a no-op implementation for the LUKS driver, since there is not any custom work that needs doing to re-open it. Signed-off-by: Daniel P. Berrange <berra...@redhat.com> Signed-off-by: Kevin Wolf <kw...@redhat.com> Commit: 8b220eb7c8a1b1d5bc2522f394e16456bf20c91f https://github.com/qemu/qemu/commit/8b220eb7c8a1b1d5bc2522f394e16456bf20c91f Author: Paolo Bonzini <pbonz...@redhat.com> Date: 2018-03-09 (Fri, 09 Mar 2018) Changed paths: M block/qcow2-refcount.c M block/qcow2.c M block/qcow2.h Log Message: ----------- qcow2: introduce qcow2_write_caches and qcow2_flush_caches They will be used to avoid recursively taking s->lock during bdrv_open or bdrv_check. Signed-off-by: Paolo Bonzini <pbonz...@redhat.com> Message-Id: <1516279431-30424-7-git-send-email-pbonz...@redhat.com> Signed-off-by: Paolo Bonzini <pbonz...@redhat.com> Signed-off-by: Kevin Wolf <kw...@redhat.com> Commit: 1a0c2bfb039c371fe6628d58335705cc7011cecb https://github.com/qemu/qemu/commit/1a0c2bfb039c371fe6628d58335705cc7011cecb Author: Paolo Bonzini <pbonz...@redhat.com> Date: 2018-03-09 (Fri, 09 Mar 2018) Changed paths: M block/qcow2-bitmap.c Log Message: ----------- qcow2: fix flushing after dirty bitmap metadata writes update_header_sync itself does not need to flush the caches to disk. The only paths that allocate clusters are: - bitmap_list_store with in_place=false, called by update_ext_header_and_dir - store_bitmap_data, called by store_bitmap - store_bitmap, called by qcow2_store_persistent_dirty_bitmaps and followed by update_ext_header_and_dir So in the end the central place where we need to flush the caches is update_ext_header_and_dir. Signed-off-by: Paolo Bonzini <pbonz...@redhat.com> Signed-off-by: Kevin Wolf <kw...@redhat.com> Commit: 1fafcd93681c5370ecf899e096a58642fa68a292 https://github.com/qemu/qemu/commit/1fafcd93681c5370ecf899e096a58642fa68a292 Author: Paolo Bonzini <pbonz...@redhat.com> Date: 2018-03-09 (Fri, 09 Mar 2018) Changed paths: M block/qcow2.c Log Message: ----------- qcow2: make qcow2_do_open a coroutine_fn It is called from qcow2_invalidate_cache in coroutine context (incoming migration runs in a coroutine), so it's cleaner if metadata is always loaded from a coroutine. Signed-off-by: Paolo Bonzini <pbonz...@redhat.com> Message-Id: <1516279431-30424-4-git-send-email-pbonz...@redhat.com> Signed-off-by: Paolo Bonzini <pbonz...@redhat.com> Signed-off-by: Kevin Wolf <kw...@redhat.com> Commit: 9fb4dfc570ce3b013830321b8b91ae2ea991d768 https://github.com/qemu/qemu/commit/9fb4dfc570ce3b013830321b8b91ae2ea991d768 Author: Paolo Bonzini <pbonz...@redhat.com> Date: 2018-03-09 (Fri, 09 Mar 2018) Changed paths: M block/qed.c Log Message: ----------- qed: make bdrv_qed_do_open a coroutine_fn It is called from qed_invalidate_cache in coroutine context (incoming migration runs in a coroutine), so it's cleaner if metadata is always loaded from a coroutine. Signed-off-by: Paolo Bonzini <pbonz...@redhat.com> Message-Id: <1516279431-30424-5-git-send-email-pbonz...@redhat.com> Signed-off-by: Paolo Bonzini <pbonz...@redhat.com> Signed-off-by: Kevin Wolf <kw...@redhat.com> Commit: 2b148f392b2bfeba76d3e6d9607c3bd072350e8c https://github.com/qemu/qemu/commit/2b148f392b2bfeba76d3e6d9607c3bd072350e8c Author: Paolo Bonzini <pbonz...@redhat.com> Date: 2018-03-09 (Fri, 09 Mar 2018) Changed paths: M block.c M block/iscsi.c M block/nfs.c M block/qcow2.c M block/qed.c M block/rbd.c M include/block/block_int.h Log Message: ----------- block: convert bdrv_invalidate_cache callback to coroutine_fn QED's bdrv_invalidate_cache implementation would like to reuse functions that acquire/release the metadata locks. Call it from coroutine context to simplify the logic. Signed-off-by: Paolo Bonzini <pbonz...@redhat.com> Message-Id: <1516279431-30424-6-git-send-email-pbonz...@redhat.com> Signed-off-by: Paolo Bonzini <pbonz...@redhat.com> Signed-off-by: Kevin Wolf <kw...@redhat.com> Commit: 2fd6163884d74e74dd1ef54ab229d15c61d0b4cb https://github.com/qemu/qemu/commit/2fd6163884d74e74dd1ef54ab229d15c61d0b4cb Author: Paolo Bonzini <pbonz...@redhat.com> Date: 2018-03-09 (Fri, 09 Mar 2018) Changed paths: M block.c M block/parallels.c M block/qcow2.c M block/qed-check.c M block/qed-table.c M block/qed.c M block/vdi.c M block/vhdx.c M block/vmdk.c M include/block/block_int.h Log Message: ----------- block: convert bdrv_check callback to coroutine_fn Suggested-by: Kevin Wolf <kw...@redhat.com> Signed-off-by: Paolo Bonzini <pbonz...@redhat.com> Message-Id: <1516279431-30424-8-git-send-email-pbonz...@redhat.com> Signed-off-by: Paolo Bonzini <pbonz...@redhat.com> Signed-off-by: Kevin Wolf <kw...@redhat.com> Commit: 0cf0e5980bb95a914a40ba0eb8e69c3d75c513fb https://github.com/qemu/qemu/commit/0cf0e5980bb95a914a40ba0eb8e69c3d75c513fb Author: Alberto Garcia <be...@igalia.com> Date: 2018-03-09 (Fri, 09 Mar 2018) Changed paths: M block/qcow2.c M block/qcow2.h M tests/qemu-iotests/080.out Log Message: ----------- qcow2: Generalize validate_table_offset() into qcow2_validate_table() This function checks that the offset and size of a table are valid. While the offset checks are fine, the size check is too generic, since it only verifies that the total size in bytes fits in a 64-bit integer. In practice all tables used in qcow2 have much smaller size limits, so the size needs to be checked again for each table using its actual limit. This patch generalizes this function by allowing the caller to specify the maximum size for that table. In addition to that it allows passing an Error variable. The function is also renamed and made public since we're going to use it in other parts of the code. Signed-off-by: Alberto Garcia <be...@igalia.com> Reviewed-by: Eric Blake <ebl...@redhat.com> Signed-off-by: Kevin Wolf <kw...@redhat.com> Commit: 314e8d3928aa82fa13673d47b5af7bdd9a6d82bf https://github.com/qemu/qemu/commit/314e8d3928aa82fa13673d47b5af7bdd9a6d82bf Author: Alberto Garcia <be...@igalia.com> Date: 2018-03-09 (Fri, 09 Mar 2018) Changed paths: M block/qcow2-snapshot.c M tests/qemu-iotests/080 M tests/qemu-iotests/080.out Log Message: ----------- qcow2: Check L1 table offset in qcow2_snapshot_load_tmp() This function checks that the size of a snapshot's L1 table is not too large, but it doesn't validate the offset. We now have a function to take care of this, so let's use it. Signed-off-by: Alberto Garcia <be...@igalia.com> Reviewed-by: Eric Blake <ebl...@redhat.com> Signed-off-by: Kevin Wolf <kw...@redhat.com> Commit: c9a442e45094e693da45f0e3d03746d68e4460ec https://github.com/qemu/qemu/commit/c9a442e45094e693da45f0e3d03746d68e4460ec Author: Alberto Garcia <be...@igalia.com> Date: 2018-03-09 (Fri, 09 Mar 2018) Changed paths: M block/qcow2-cluster.c M tests/qemu-iotests/080 M tests/qemu-iotests/080.out Log Message: ----------- qcow2: Check L1 table parameters in qcow2_expand_zero_clusters() This function iterates over all snapshots of a qcow2 file in order to expand all zero clusters, but it does not validate the snapshots' L1 tables first. We now have a function to take care of this, so let's use it. We can also take the opportunity to replace the sector-based bdrv_read() with bdrv_pread(). Cc: Eric Blake <ebl...@redhat.com> Signed-off-by: Alberto Garcia <be...@igalia.com> Reviewed-by: Eric Blake <ebl...@redhat.com> Signed-off-by: Kevin Wolf <kw...@redhat.com> Commit: c7a9d81d7061a7fb3b5b5726a6f139444e1ad5e6 https://github.com/qemu/qemu/commit/c7a9d81d7061a7fb3b5b5726a6f139444e1ad5e6 Author: Alberto Garcia <be...@igalia.com> Date: 2018-03-09 (Fri, 09 Mar 2018) Changed paths: M block/qcow2-refcount.c M tests/qemu-iotests/080 M tests/qemu-iotests/080.out Log Message: ----------- qcow2: Check snapshot L1 tables in qcow2_check_metadata_overlap() The inactive-l2 overlap check iterates uses the L1 tables from all snapshots, but it does not validate them first. We now have a function to take care of this, so let's use it. Signed-off-by: Alberto Garcia <be...@igalia.com> Reviewed-by: Eric Blake <ebl...@redhat.com> Signed-off-by: Kevin Wolf <kw...@redhat.com> Commit: a8475d7573c0598ba8f92f84534110218ee11e3d https://github.com/qemu/qemu/commit/a8475d7573c0598ba8f92f84534110218ee11e3d Author: Alberto Garcia <be...@igalia.com> Date: 2018-03-09 (Fri, 09 Mar 2018) Changed paths: M block/qcow2-snapshot.c M tests/qemu-iotests/080 M tests/qemu-iotests/080.out Log Message: ----------- qcow2: Check snapshot L1 table in qcow2_snapshot_goto() This function copies a snapshot's L1 table into the active one without validating it first. We now have a function to take care of this, so let's use it. Cc: Eric Blake <ebl...@redhat.com> Signed-off-by: Alberto Garcia <be...@igalia.com> Reviewed-by: Eric Blake <ebl...@redhat.com> Signed-off-by: Kevin Wolf <kw...@redhat.com> Commit: db5794f1f17d1f8247c0ea8e6f0376a47b112466 https://github.com/qemu/qemu/commit/db5794f1f17d1f8247c0ea8e6f0376a47b112466 Author: Alberto Garcia <be...@igalia.com> Date: 2018-03-09 (Fri, 09 Mar 2018) Changed paths: M block/qcow2-snapshot.c M tests/qemu-iotests/080 M tests/qemu-iotests/080.out Log Message: ----------- qcow2: Check snapshot L1 table in qcow2_snapshot_delete() This function deletes a snapshot from disk, removing its entry from the snapshot table, freeing its L1 table and decreasing the refcounts of all clusters. The L1 table offset and size are however not validated. If we use invalid values in this function we'll probably corrupt the image even more, so we should return an error instead. We now have a function to take care of this, so let's use it. Signed-off-by: Alberto Garcia <be...@igalia.com> Reviewed-by: Eric Blake <ebl...@redhat.com> Signed-off-by: Kevin Wolf <kw...@redhat.com> Commit: 0c2ada8136a993b1fae9cee2c26b357e9c56c016 https://github.com/qemu/qemu/commit/0c2ada8136a993b1fae9cee2c26b357e9c56c016 Author: Alberto Garcia <be...@igalia.com> Date: 2018-03-09 (Fri, 09 Mar 2018) Changed paths: M block/qcow2-refcount.c M tests/qemu-iotests/080 M tests/qemu-iotests/080.out Log Message: ----------- qcow2: Make qemu-img check detect corrupted L1 tables in snapshots 'qemu-img check' cannot detect if a snapshot's L1 table is corrupted. This patch checks the table's offset and size and reports corruption if the values are not valid. This patch doesn't add code to fix that corruption yet, only to detect and report it. Signed-off-by: Alberto Garcia <be...@igalia.com> Reviewed-by: Eric Blake <ebl...@redhat.com> Signed-off-by: Kevin Wolf <kw...@redhat.com> Commit: 5361468974c72cf0b22bd0789e55a51fd9d75d50 https://github.com/qemu/qemu/commit/5361468974c72cf0b22bd0789e55a51fd9d75d50 Author: Kevin Wolf <kw...@redhat.com> Date: 2018-03-09 (Fri, 09 Mar 2018) Changed paths: M qapi/block-core.json Log Message: ----------- block/qapi: Introduce BlockdevCreateOptions This creates a BlockdevCreateOptions union type that will contain all of the options for image creation. We'll start out with an empty struct type BlockdevCreateNotSupported for all drivers. Signed-off-by: Kevin Wolf <kw...@redhat.com> Reviewed-by: Eric Blake <ebl...@redhat.com> Reviewed-by: Max Reitz <mre...@redhat.com> Commit: c2808abaf73585562ab8c3a552b270065236349a https://github.com/qemu/qemu/commit/c2808abaf73585562ab8c3a552b270065236349a Author: Kevin Wolf <kw...@redhat.com> Date: 2018-03-09 (Fri, 09 Mar 2018) Changed paths: M qapi/block-core.json Log Message: ----------- block/qapi: Add qcow2 create options to schema Signed-off-by: Kevin Wolf <kw...@redhat.com> Reviewed-by: Eric Blake <ebl...@redhat.com> Reviewed-by: Max Reitz <mre...@redhat.com> Commit: 8ca5bfdc46031a10475fce428446d3e3c1b89e5b https://github.com/qemu/qemu/commit/8ca5bfdc46031a10475fce428446d3e3c1b89e5b Author: Kevin Wolf <kw...@redhat.com> Date: 2018-03-09 (Fri, 09 Mar 2018) Changed paths: M block/qcow2.c Log Message: ----------- qcow2: Rename qcow2_co_create2() to qcow2_co_create() The functions originally known as qcow2_create() and qcow2_create2() are now called qcow2_co_create_opts() and qcow2_co_create(), which matches the names of the BlockDriver callbacks that they will implement at the end of this patch series. Signed-off-by: Kevin Wolf <kw...@redhat.com> Reviewed-by: Eric Blake <ebl...@redhat.com> Reviewed-by: Max Reitz <mre...@redhat.com> Commit: cbf2b7c4045550353a08c0b182beef7a72e4f813 https://github.com/qemu/qemu/commit/cbf2b7c4045550353a08c0b182beef7a72e4f813 Author: Kevin Wolf <kw...@redhat.com> Date: 2018-03-09 (Fri, 09 Mar 2018) Changed paths: M block/qcow2.c Log Message: ----------- qcow2: Let qcow2_create() handle protocol layer Currently, qcow2_create() only parses the QemuOpts and then calls qcow2_co_create() for the actual image creation, which includes both the creation of the actual file on the file system and writing a valid empty qcow2 image into that file. The plan is that qcow2_co_create() becomes the function that implements the functionality for a future 'blockdev-create' QMP command, which only creates the qcow2 layer on an already opened file node. This is a first step towards that goal: Let's move out anything that deals with the protocol layer from qcow2_co_create() into qcow2_create(). This means that qcow2_co_create() doesn't need a file name any more. Signed-off-by: Kevin Wolf <kw...@redhat.com> Reviewed-by: Eric Blake <ebl...@redhat.com> Reviewed-by: Max Reitz <mre...@redhat.com> Commit: 29ca9e450dd0fd5961f5f3c12f8e983707ec71ed https://github.com/qemu/qemu/commit/29ca9e450dd0fd5961f5f3c12f8e983707ec71ed Author: Kevin Wolf <kw...@redhat.com> Date: 2018-03-09 (Fri, 09 Mar 2018) Changed paths: M block/qcow2.c Log Message: ----------- qcow2: Pass BlockdevCreateOptions to qcow2_co_create() All of the simple options are now passed to qcow2_co_create() in a BlockdevCreateOptions object. Still missing: node-name and the encryption options. Signed-off-by: Kevin Wolf <kw...@redhat.com> Reviewed-by: Max Reitz <mre...@redhat.com> Reviewed-by: Eric Blake <ebl...@redhat.com> Commit: e1d74bc6c61f9be8c1eb19f39d96b08e7332c864 https://github.com/qemu/qemu/commit/e1d74bc6c61f9be8c1eb19f39d96b08e7332c864 Author: Kevin Wolf <kw...@redhat.com> Date: 2018-03-09 (Fri, 09 Mar 2018) Changed paths: M block.c M block/qcow2.c M include/block/block.h Log Message: ----------- qcow2: Use BlockdevRef in qcow2_co_create() Instead of passing a separate BlockDriverState* into qcow2_co_create(), make use of the BlockdevRef that is included in BlockdevCreateOptions. Signed-off-by: Kevin Wolf <kw...@redhat.com> Reviewed-by: Eric Blake <ebl...@redhat.com> Reviewed-by: Max Reitz <mre...@redhat.com> Commit: 60900b7bd930e0b9acad118ead4fabf4610066a8 https://github.com/qemu/qemu/commit/60900b7bd930e0b9acad118ead4fabf4610066a8 Author: Kevin Wolf <kw...@redhat.com> Date: 2018-03-09 (Fri, 09 Mar 2018) Changed paths: M block/qcow2.c Log Message: ----------- qcow2: Use QCryptoBlockCreateOptions in qcow2_co_create() Instead of passing the encryption format name and the QemuOpts down, use the QCryptoBlockCreateOptions contained in BlockdevCreateOptions. Signed-off-by: Kevin Wolf <kw...@redhat.com> Reviewed-by: Eric Blake <ebl...@redhat.com> Reviewed-by: Max Reitz <mre...@redhat.com> Commit: e4b5dad8269b1b629c52be25e6da50644293abf7 https://github.com/qemu/qemu/commit/e4b5dad8269b1b629c52be25e6da50644293abf7 Author: Kevin Wolf <kw...@redhat.com> Date: 2018-03-09 (Fri, 09 Mar 2018) Changed paths: M block/qcow2.c Log Message: ----------- qcow2: Handle full/falloc preallocation in qcow2_co_create() Once qcow2_co_create() can be called directly on an already existing node, we must provide the 'full' and 'falloc' preallocation modes outside of creating the image on the protocol layer. Fortunately, we have preallocated truncate now which can provide this functionality. Signed-off-by: Kevin Wolf <kw...@redhat.com> Reviewed-by: Eric Blake <ebl...@redhat.com> Reviewed-by: Max Reitz <mre...@redhat.com> Commit: 72215395b9e44f13be48e8576b90719738766edf https://github.com/qemu/qemu/commit/72215395b9e44f13be48e8576b90719738766edf Author: Kevin Wolf <kw...@redhat.com> Date: 2018-03-09 (Fri, 09 Mar 2018) Changed paths: M include/qemu/option.h M util/qemu-option.c Log Message: ----------- util: Add qemu_opts_to_qdict_filtered() This allows, given a QemuOpts for a QemuOptsList that was merged from multiple QemuOptsList, to only consider those options that exist in one specific list. Block drivers need this to separate format-layer create options from protocol-level options. Signed-off-by: Kevin Wolf <kw...@redhat.com> Reviewed-by: Eric Blake <ebl...@redhat.com> Reviewed-by: Max Reitz <mre...@redhat.com> Commit: 575ef8bff62834f38aef353f96084850a4348078 https://github.com/qemu/qemu/commit/575ef8bff62834f38aef353f96084850a4348078 Author: Kevin Wolf <kw...@redhat.com> Date: 2018-03-09 (Fri, 09 Mar 2018) Changed paths: M tests/test-qemu-opts.c Log Message: ----------- test-qemu-opts: Test qemu_opts_append() Basic test for merging two QemuOptsLists. Signed-off-by: Kevin Wolf <kw...@redhat.com> Reviewed-by: Eric Blake <ebl...@redhat.com> Reviewed-by: Max Reitz <mre...@redhat.com> Commit: 37974a97d4d29229255b39ddd16c31743e1880ed https://github.com/qemu/qemu/commit/37974a97d4d29229255b39ddd16c31743e1880ed Author: Kevin Wolf <kw...@redhat.com> Date: 2018-03-09 (Fri, 09 Mar 2018) Changed paths: M tests/test-qemu-opts.c Log Message: ----------- test-qemu-opts: Test qemu_opts_to_qdict_filtered() Signed-off-by: Kevin Wolf <kw...@redhat.com> Reviewed-by: Eric Blake <ebl...@redhat.com> Reviewed-by: Max Reitz <mre...@redhat.com> Commit: bcebf102ccc3c6db327f341adc379fdf0673ca6b https://github.com/qemu/qemu/commit/bcebf102ccc3c6db327f341adc379fdf0673ca6b Author: Kevin Wolf <kw...@redhat.com> Date: 2018-03-09 (Fri, 09 Mar 2018) Changed paths: M include/qapi/qmp/qdict.h M qobject/qdict.c M tests/check-qdict.c Log Message: ----------- qdict: Introduce qdict_rename_keys() A few block drivers will need to rename .bdrv_create options for their QAPIfication, so let's have a helper function for that. Signed-off-by: Kevin Wolf <kw...@redhat.com> Reviewed-by: Max Reitz <mre...@redhat.com> Reviewed-by: Eric Blake <ebl...@redhat.com> Commit: b76b4f604521e59f857d6177bc55f6f2e41fd392 https://github.com/qemu/qemu/commit/b76b4f604521e59f857d6177bc55f6f2e41fd392 Author: Kevin Wolf <kw...@redhat.com> Date: 2018-03-09 (Fri, 09 Mar 2018) Changed paths: M block/qcow2.c M tests/qemu-iotests/049.out M tests/qemu-iotests/112.out Log Message: ----------- qcow2: Use visitor for options in qcow2_create() Instead of manually creating the BlockdevCreateOptions object, use a visitor to parse the given options into the QAPI object. This involves translation from the old command line syntax to the syntax mandated by the QAPI schema. Option names are still checked against qcow2_create_opts, so only the old option names are allowed on the command line, even if they are translated in qcow2_create(). In contrast, new option values are optionally recognised besides the old values: 'compat' accepts 'v2'/'v3' as an alias for '0.10'/'1.1', and 'encrypt.format' accepts 'qcow' as an alias for 'aes' now. Signed-off-by: Kevin Wolf <kw...@redhat.com> Reviewed-by: Max Reitz <mre...@redhat.com> Reviewed-by: Eric Blake <ebl...@redhat.com> Commit: e8eb8637786635e73df3da3d24aff0e01d48fa51 https://github.com/qemu/qemu/commit/e8eb8637786635e73df3da3d24aff0e01d48fa51 Author: Kevin Wolf <kw...@redhat.com> Date: 2018-03-09 (Fri, 09 Mar 2018) Changed paths: M block.c M include/block/block.h Log Message: ----------- block: Make bdrv_is_whitelisted() public We'll use a separate source file for image creation, and we need to check there whether the requested driver is whitelisted. Signed-off-by: Kevin Wolf <kw...@redhat.com> Reviewed-by: Max Reitz <mre...@redhat.com> Reviewed-by: Eric Blake <ebl...@redhat.com> Commit: b0292b851b85ba81c0cfedf5b576c32189cfaa11 https://github.com/qemu/qemu/commit/b0292b851b85ba81c0cfedf5b576c32189cfaa11 Author: Kevin Wolf <kw...@redhat.com> Date: 2018-03-09 (Fri, 09 Mar 2018) Changed paths: M block/Makefile.objs A block/create.c M block/qcow2.c M include/block/block_int.h M qapi/block-core.json Log Message: ----------- block: x-blockdev-create QMP command This adds a synchronous x-blockdev-create QMP command that can create qcow2 images on a given node name. We don't want to block while creating an image, so this is not the final interface in all aspects, but BlockdevCreateOptionsQcow2 and .bdrv_co_create() are what they actually might look like in the end. In any case, this should be good enough to test whether we interpret BlockdevCreateOptions as we should. Signed-off-by: Kevin Wolf <kw...@redhat.com> Reviewed-by: Max Reitz <mre...@redhat.com> Reviewed-by: Eric Blake <ebl...@redhat.com> Commit: 927f11e1316c1cf96ab70d271f8b29d65dc75f7c https://github.com/qemu/qemu/commit/927f11e1316c1cf96ab70d271f8b29d65dc75f7c Author: Kevin Wolf <kw...@redhat.com> Date: 2018-03-09 (Fri, 09 Mar 2018) Changed paths: M block/file-posix.c M qapi/block-core.json Log Message: ----------- file-posix: Support .bdrv_co_create This adds the .bdrv_co_create driver callback to file, which enables image creation over QMP. Signed-off-by: Kevin Wolf <kw...@redhat.com> Reviewed-by: Max Reitz <mre...@redhat.com> Reviewed-by: Eric Blake <ebl...@redhat.com> Commit: 3766ef579ce0bf6c8fff632a7f793833f35d2658 https://github.com/qemu/qemu/commit/3766ef579ce0bf6c8fff632a7f793833f35d2658 Author: Kevin Wolf <kw...@redhat.com> Date: 2018-03-09 (Fri, 09 Mar 2018) Changed paths: M block/file-win32.c Log Message: ----------- file-win32: Support .bdrv_co_create This adds the .bdrv_co_create driver callback to file-win32, which enables image creation over QMP. Signed-off-by: Kevin Wolf <kw...@redhat.com> Reviewed-by: Max Reitz <mre...@redhat.com> Reviewed-by: Eric Blake <ebl...@redhat.com> Commit: ab8bda76a010261ac6df2fd6e0559c3589b6e847 https://github.com/qemu/qemu/commit/ab8bda76a010261ac6df2fd6e0559c3589b6e847 Author: Kevin Wolf <kw...@redhat.com> Date: 2018-03-09 (Fri, 09 Mar 2018) Changed paths: M block/gluster.c M qapi/block-core.json Log Message: ----------- gluster: Support .bdrv_co_create This adds the .bdrv_co_create driver callback to gluster, which enables image creation over QMP. Signed-off-by: Kevin Wolf <kw...@redhat.com> Reviewed-by: Max Reitz <mre...@redhat.com> Reviewed-by: Eric Blake <ebl...@redhat.com> Commit: 71c87815f9e0386b6f3e22942adc956fd603c82f https://github.com/qemu/qemu/commit/71c87815f9e0386b6f3e22942adc956fd603c82f Author: Kevin Wolf <kw...@redhat.com> Date: 2018-03-09 (Fri, 09 Mar 2018) Changed paths: M block/rbd.c Log Message: ----------- rbd: Fix use after free in qemu_rbd_set_keypairs() error path If we want to include the invalid option name in the error message, we can't free the string earlier than that. Cc: qemu-sta...@nongnu.org Signed-off-by: Kevin Wolf <kw...@redhat.com> Reviewed-by: Max Reitz <mre...@redhat.com> Reviewed-by: Eric Blake <ebl...@redhat.com> Commit: 3d9136f972d3dc678fc46de8fc126ba00a46508e https://github.com/qemu/qemu/commit/3d9136f972d3dc678fc46de8fc126ba00a46508e Author: Kevin Wolf <kw...@redhat.com> Date: 2018-03-09 (Fri, 09 Mar 2018) Changed paths: M block/rbd.c Log Message: ----------- rbd: Factor out qemu_rbd_connect() The code to establish an RBD connection is duplicated between open and create. In order to be able to share the code, factor out the code from qemu_rbd_open() as a first step. Signed-off-by: Kevin Wolf <kw...@redhat.com> Reviewed-by: Max Reitz <mre...@redhat.com> Commit: 4ff4504974d0b41cd7e2b1a8aa346072eb219541 https://github.com/qemu/qemu/commit/4ff4504974d0b41cd7e2b1a8aa346072eb219541 Author: Kevin Wolf <kw...@redhat.com> Date: 2018-03-09 (Fri, 09 Mar 2018) Changed paths: M block/rbd.c Log Message: ----------- rbd: Remove non-schema options from runtime_opts Instead of the QemuOpts in qemu_rbd_connect(), we want to use QAPI objects. As a preparation, fetch those options directly from the QDict that .bdrv_open() supports in the rbd driver and that are not in the schema. Signed-off-by: Kevin Wolf <kw...@redhat.com> Reviewed-by: Max Reitz <mre...@redhat.com> Commit: 4bfb274165ba013bacd2a40fd28c7c2e04a831f3 https://github.com/qemu/qemu/commit/4bfb274165ba013bacd2a40fd28c7c2e04a831f3 Author: Kevin Wolf <kw...@redhat.com> Date: 2018-03-09 (Fri, 09 Mar 2018) Changed paths: M block/rbd.c Log Message: ----------- rbd: Pass BlockdevOptionsRbd to qemu_rbd_connect() With the conversion to a QAPI options object, the function is now prepared to be used in a .bdrv_co_create implementation. Signed-off-by: Kevin Wolf <kw...@redhat.com> Reviewed-by: Max Reitz <mre...@redhat.com> Commit: 1bebea37b43223a45c39dcbc158f3cec6164fdbf https://github.com/qemu/qemu/commit/1bebea37b43223a45c39dcbc158f3cec6164fdbf Author: Kevin Wolf <kw...@redhat.com> Date: 2018-03-09 (Fri, 09 Mar 2018) Changed paths: M block/rbd.c M qapi/block-core.json Log Message: ----------- rbd: Support .bdrv_co_create This adds the .bdrv_co_create driver callback to rbd, which enables image creation over QMP. Signed-off-by: Kevin Wolf <kw...@redhat.com> Reviewed-by: Max Reitz <mre...@redhat.com> Commit: d41a55885de18f4fe8dddb8ae88be80497f8eb05 https://github.com/qemu/qemu/commit/d41a55885de18f4fe8dddb8ae88be80497f8eb05 Author: Kevin Wolf <kw...@redhat.com> Date: 2018-03-09 (Fri, 09 Mar 2018) Changed paths: M block/rbd.c Log Message: ----------- rbd: Assign s->snap/image_name in qemu_rbd_open() Now that the options are already available in qemu_rbd_open() and not only parsed in qemu_rbd_connect(), we can assign s->snap and s->image_name there instead of passing the fields by reference to qemu_rbd_connect(). Signed-off-by: Kevin Wolf <kw...@redhat.com> Reviewed-by: Max Reitz <mre...@redhat.com> Commit: aa045c2d37c831541607c0a81212f9d3f2dacad9 https://github.com/qemu/qemu/commit/aa045c2d37c831541607c0a81212f9d3f2dacad9 Author: Kevin Wolf <kw...@redhat.com> Date: 2018-03-09 (Fri, 09 Mar 2018) Changed paths: M block/rbd.c Log Message: ----------- rbd: Use qemu_rbd_connect() in qemu_rbd_do_create() This is almost exactly the same code. The differences are that qemu_rbd_connect() supports BlockdevOptionsRbd.server and that the cache mode is set explicitly. Supporting 'server' is a welcome new feature for image creation. Caching is disabled by default, so leave it that way. Signed-off-by: Kevin Wolf <kw...@redhat.com> Reviewed-by: Max Reitz <mre...@redhat.com> Commit: c22a03454544c2a08f1107c5cc8481a5574533d5 https://github.com/qemu/qemu/commit/c22a03454544c2a08f1107c5cc8481a5574533d5 Author: Kevin Wolf <kw...@redhat.com> Date: 2018-03-09 (Fri, 09 Mar 2018) Changed paths: M block/nfs.c Log Message: ----------- nfs: Use QAPI options in nfs_client_open() Using the QAPI visitor to turn all options into QAPI BlockdevOptionsNfs simplifies the code a lot. It will also be useful for implementing the QAPI based .bdrv_co_create callback. Signed-off-by: Kevin Wolf <kw...@redhat.com> Reviewed-by: Max Reitz <mre...@redhat.com> Commit: a1a42af422d46812f1f0cebe6b230c20409a3731 https://github.com/qemu/qemu/commit/a1a42af422d46812f1f0cebe6b230c20409a3731 Author: Kevin Wolf <kw...@redhat.com> Date: 2018-03-09 (Fri, 09 Mar 2018) Changed paths: M block/nfs.c M qapi/block-core.json Log Message: ----------- nfs: Support .bdrv_co_create This adds the .bdrv_co_create driver callback to nfs, which enables image creation over QMP. Signed-off-by: Kevin Wolf <kw...@redhat.com> Reviewed-by: Max Reitz <mre...@redhat.com> Commit: a595e4bcca4ad6c5544008931dc92bed1da3f89f https://github.com/qemu/qemu/commit/a595e4bcca4ad6c5544008931dc92bed1da3f89f Author: Kevin Wolf <kw...@redhat.com> Date: 2018-03-09 (Fri, 09 Mar 2018) Changed paths: M block/sheepdog.c M qapi/block-core.json Log Message: ----------- sheepdog: QAPIfy "redundancy" create option The "redundancy" option for Sheepdog image creation is currently a string that can encode one or two integers depending on its format, which at the same time implicitly selects a mode. This patch turns it into a QAPI union and converts the string into such a QAPI object before interpreting the values. Signed-off-by: Kevin Wolf <kw...@redhat.com> Reviewed-by: Max Reitz <mre...@redhat.com> Commit: 63fd65a0a5acca28740fc7ed138278d040ca6c9c https://github.com/qemu/qemu/commit/63fd65a0a5acca28740fc7ed138278d040ca6c9c Author: Kevin Wolf <kw...@redhat.com> Date: 2018-03-09 (Fri, 09 Mar 2018) Changed paths: M block/sheepdog.c M qapi/block-core.json Log Message: ----------- sheepdog: Support .bdrv_co_create This adds the .bdrv_co_create driver callback to sheepdog, which enables image creation over QMP. Signed-off-by: Kevin Wolf <kw...@redhat.com> Reviewed-by: Max Reitz <mre...@redhat.com> Commit: 16e4bdb1bff83c41b73ed9c915d6bfc31d3e7ac8 https://github.com/qemu/qemu/commit/16e4bdb1bff83c41b73ed9c915d6bfc31d3e7ac8 Author: Kevin Wolf <kw...@redhat.com> Date: 2018-03-09 (Fri, 09 Mar 2018) Changed paths: M block/ssh.c Log Message: ----------- ssh: Use QAPI BlockdevOptionsSsh object Create a BlockdevOptionsSsh object in connect_to_ssh() and take the options from there. 'host_key_check' is still processed separately because it's not in the schema yet. Signed-off-by: Kevin Wolf <kw...@redhat.com> Reviewed-by: Max Reitz <mre...@redhat.com> Commit: ec2f54182c5690387ba72a4acfcbdd961fcdcfc6 https://github.com/qemu/qemu/commit/ec2f54182c5690387ba72a4acfcbdd961fcdcfc6 Author: Kevin Wolf <kw...@redhat.com> Date: 2018-03-09 (Fri, 09 Mar 2018) Changed paths: M block/ssh.c M qapi/block-core.json Log Message: ----------- ssh: QAPIfy host-key-check option This makes the host-key-check option available in blockdev-add. Signed-off-by: Kevin Wolf <kw...@redhat.com> Reviewed-by: Max Reitz <mre...@redhat.com> Commit: 375f0b9266d72cab238dc079ca319417f9a92983 https://github.com/qemu/qemu/commit/375f0b9266d72cab238dc079ca319417f9a92983 Author: Kevin Wolf <kw...@redhat.com> Date: 2018-03-09 (Fri, 09 Mar 2018) Changed paths: M block/ssh.c Log Message: ----------- ssh: Pass BlockdevOptionsSsh to connect_to_ssh() Move the parsing of the QDict options up to the callers, in preparation for the .bdrv_co_create implementation that directly gets a QAPI type. Signed-off-by: Kevin Wolf <kw...@redhat.com> Reviewed-by: Max Reitz <mre...@redhat.com> Commit: 4906da7e4de3720995b644f9903879cfd5a51a40 https://github.com/qemu/qemu/commit/4906da7e4de3720995b644f9903879cfd5a51a40 Author: Kevin Wolf <kw...@redhat.com> Date: 2018-03-09 (Fri, 09 Mar 2018) Changed paths: M block/ssh.c M qapi/block-core.json Log Message: ----------- ssh: Support .bdrv_co_create This adds the .bdrv_co_create driver callback to ssh, which enables image creation over QMP. Signed-off-by: Kevin Wolf <kw...@redhat.com> Reviewed-by: Max Reitz <mre...@redhat.com> Commit: 89b259eeaa0f4ad3fa89cbe500da9335536e20ee https://github.com/qemu/qemu/commit/89b259eeaa0f4ad3fa89cbe500da9335536e20ee Author: Kevin Wolf <kw...@redhat.com> Date: 2018-03-09 (Fri, 09 Mar 2018) Changed paths: M block/file-posix.c Log Message: ----------- file-posix: Fix no-op bdrv_truncate() with falloc preallocation If bdrv_truncate() is called, but the requested size is the same as before, don't call posix_fallocate(), which returns -EINVAL for length zero and would therefore make bdrv_truncate() fail. The problem can be triggered by creating a zero-sized raw image with 'falloc' preallocation mode. Signed-off-by: Kevin Wolf <kw...@redhat.com> Reviewed-by: Max Reitz <mre...@redhat.com> Reviewed-by: Eric Blake <ebl...@redhat.com> Commit: cd8b7aaa073d83337dd100f6258a56fdd76d778d https://github.com/qemu/qemu/commit/cd8b7aaa073d83337dd100f6258a56fdd76d778d Author: Kevin Wolf <kw...@redhat.com> Date: 2018-03-09 (Fri, 09 Mar 2018) Changed paths: M block.c Log Message: ----------- block: Fail bdrv_truncate() with negative size Most callers have their own checks, but something like this should also be checked centrally. As it happens, x-blockdev-create can pass negative image sizes to format drivers (because there is no QAPI type that would reject negative numbers) and triggers the check added by this patch. Signed-off-by: Kevin Wolf <kw...@redhat.com> Reviewed-by: Max Reitz <mre...@redhat.com> Reviewed-by: Eric Blake <ebl...@redhat.com> Commit: 39218a771ae2761c59e2e8ae8728b434eaaa794f https://github.com/qemu/qemu/commit/39218a771ae2761c59e2e8ae8728b434eaaa794f Author: Kevin Wolf <kw...@redhat.com> Date: 2018-03-09 (Fri, 09 Mar 2018) Changed paths: A tests/qemu-iotests/206 A tests/qemu-iotests/206.out M tests/qemu-iotests/group Log Message: ----------- qemu-iotests: Test qcow2 over file image creation with QMP Signed-off-by: Kevin Wolf <kw...@redhat.com> Reviewed-by: Max Reitz <mre...@redhat.com> Commit: 56ea7450aa4078e357b6ec715046ecc32a6b16b4 https://github.com/qemu/qemu/commit/56ea7450aa4078e357b6ec715046ecc32a6b16b4 Author: Kevin Wolf <kw...@redhat.com> Date: 2018-03-09 (Fri, 09 Mar 2018) Changed paths: A tests/qemu-iotests/207 A tests/qemu-iotests/207.out M tests/qemu-iotests/group Log Message: ----------- qemu-iotests: Test ssh image creation over QMP Signed-off-by: Kevin Wolf <kw...@redhat.com> Reviewed-by: Max Reitz <mre...@redhat.com> Commit: fcca5dce203b8df0817bcca4c23e4c6846df5a56 https://github.com/qemu/qemu/commit/fcca5dce203b8df0817bcca4c23e4c6846df5a56 Author: Fam Zheng <f...@redhat.com> Date: 2018-03-09 (Fri, 09 Mar 2018) Changed paths: M tests/qemu-iotests/153 M tests/qemu-iotests/153.out Log Message: ----------- iotests: Test creating overlay when guest running Signed-off-by: Fam Zheng <f...@redhat.com> Message-id: 20171225025107.23985-1-f...@redhat.com Reviewed-by: Eric Blake <ebl...@redhat.com> Signed-off-by: Max Reitz <mre...@redhat.com> Commit: 990dc39cfa9b72fbe743a850db5542870caf7e05 https://github.com/qemu/qemu/commit/990dc39cfa9b72fbe743a850db5542870caf7e05 Author: Eric Blake <ebl...@redhat.com> Date: 2018-03-09 (Fri, 09 Mar 2018) Changed paths: M tests/qemu-iotests/096 M tests/qemu-iotests/124 M tests/qemu-iotests/129 M tests/qemu-iotests/132 M tests/qemu-iotests/136 M tests/qemu-iotests/139 M tests/qemu-iotests/148 M tests/qemu-iotests/152 M tests/qemu-iotests/163 M tests/qemu-iotests/205 Log Message: ----------- iotests: Mark all tests executable The majority of our iotests have the executable bit set; fix the few outliers for consistency. Signed-off-by: Eric Blake <ebl...@redhat.com> Message-id: 20180305161824.7188-1-ebl...@redhat.com Signed-off-by: Max Reitz <mre...@redhat.com> Commit: 0bfed484a51e602ec77361c79c1caede396fb242 https://github.com/qemu/qemu/commit/0bfed484a51e602ec77361c79c1caede396fb242 Author: Fam Zheng <f...@redhat.com> Date: 2018-03-09 (Fri, 09 Mar 2018) Changed paths: M tests/qemu-iotests/059 Log Message: ----------- iotests: Skip test for ENOMEM error The AFL image is to exercise the code validating image size, which doesn't work on 32 bit or when out of memory (there is a large allocation before the interesting point). So check that and skip the test, instead of faking the result. Signed-off-by: Fam Zheng <f...@redhat.com> Message-id: 20180301011413.11531-1-f...@redhat.com Reviewed-by: Eric Blake <ebl...@redhat.com> Signed-off-by: Max Reitz <mre...@redhat.com> Commit: 39eaefcedb9af9131543e6b35386627780ac3f41 https://github.com/qemu/qemu/commit/39eaefcedb9af9131543e6b35386627780ac3f41 Author: Alberto Garcia <be...@igalia.com> Date: 2018-03-09 (Fri, 09 Mar 2018) Changed paths: M tests/qemu-iotests/030 M tests/qemu-iotests/030.out Log Message: ----------- iotests: Tweak 030 in order to trigger a race condition with parallel jobs This patch tweaks TestParallelOps in iotest 030 so it allocates data in smaller regions (256KB/512KB instead of 512KB/1MB) and the block-stream job in test_stream_commit() only needs to copy data that is at the very end of the image. This way when the block-stream job is awakened it will finish right away without any chance of being stopped by block_job_sleep_ns(). This triggers the bug that was fixed by 3d5d319e1221082974711af1d09d82f and 1a63a907507fbbcfaee3f622907ec24 and is therefore a more useful test case for parallel block jobs. After this patch the aforementiond bug can also be reproduced with the test_stream_parallel() test case. Since with this change the stream job in test_stream_commit() finishes early, this patch introduces a similar test case where both jobs are slowed down so they can actually run in parallel. Signed-off-by: Alberto Garcia <be...@igalia.com> Cc: John Snow <js...@redhat.com> Message-id: 20180306130121.30243-1-be...@igalia.com Signed-off-by: Max Reitz <mre...@redhat.com> Commit: 21794244d4e9c5f81132e4574e5bd10ef5066715 https://github.com/qemu/qemu/commit/21794244d4e9c5f81132e4574e5bd10ef5066715 Author: Stefan Hajnoczi <stefa...@redhat.com> Date: 2018-03-09 (Fri, 09 Mar 2018) Changed paths: M tests/qemu-iotests/203 M tests/qemu-iotests/203.out Log Message: ----------- qemu-iotests: fix 203 migration completion race There is a race between the test's 'query-migrate' QMP command after the QMP 'STOP' event and completing the migration: The test case invokes 'query-migrate' upon receiving 'STOP'. At this point the migration thread may still be in the process of completing. Therefore 'query-migrate' can return 'status': 'active' for a brief window of time instead of 'status': 'completed'. This results in qemu-iotests 203 hanging. Solve the race by enabling the 'events' migration capability, which causes QEMU to emit migration-specific QMP events that do not suffer from this race condition. Wait for the QMP 'MIGRATION' event with 'status': 'completed'. Reported-by: Max Reitz <mre...@redhat.com> Signed-off-by: Stefan Hajnoczi <stefa...@redhat.com> Message-id: 20180305155926.25858-1-stefa...@redhat.com Reviewed-by: Max Reitz <mre...@redhat.com> Signed-off-by: Max Reitz <mre...@redhat.com> Commit: a1be5921e35dcf84ce9e3c9a5c3029cea530a60b https://github.com/qemu/qemu/commit/a1be5921e35dcf84ce9e3c9a5c3029cea530a60b Author: Kevin Wolf <kw...@redhat.com> Date: 2018-03-09 (Fri, 09 Mar 2018) Changed paths: M tests/qemu-iotests/030 M tests/qemu-iotests/030.out M tests/qemu-iotests/059 M tests/qemu-iotests/096 M tests/qemu-iotests/124 M tests/qemu-iotests/129 M tests/qemu-iotests/132 M tests/qemu-iotests/136 M tests/qemu-iotests/139 M tests/qemu-iotests/148 M tests/qemu-iotests/152 M tests/qemu-iotests/153 M tests/qemu-iotests/153.out M tests/qemu-iotests/163 M tests/qemu-iotests/203 M tests/qemu-iotests/203.out M tests/qemu-iotests/205 Log Message: ----------- Merge remote-tracking branch 'mreitz/tags/pull-block-2018-03-09' into queue-block Block patches # gpg: Signature made Fri Mar 9 15:40:32 2018 CET # gpg: using RSA key F407DB0061D5CF40 # gpg: Good signature from "Max Reitz <mre...@redhat.com>" # Primary key fingerprint: 91BE B60A 30DB 3E88 57D1 1829 F407 DB00 61D5 CF40 * mreitz/tags/pull-block-2018-03-09: qemu-iotests: fix 203 migration completion race iotests: Tweak 030 in order to trigger a race condition with parallel jobs iotests: Skip test for ENOMEM error iotests: Mark all tests executable iotests: Test creating overlay when guest running Signed-off-by: Kevin Wolf <kw...@redhat.com> Commit: 12c06d6f967a63515399b9e1f6a40f5ce871a8b7 https://github.com/qemu/qemu/commit/12c06d6f967a63515399b9e1f6a40f5ce871a8b7 Author: Peter Maydell <peter.mayd...@linaro.org> Date: 2018-03-12 (Mon, 12 Mar 2018) Changed paths: M block.c M block/Makefile.objs A block/create.c M block/crypto.c M block/file-posix.c M block/file-win32.c M block/gluster.c M block/iscsi.c M block/nfs.c M block/parallels.c M block/qcow2-bitmap.c M block/qcow2-cluster.c M block/qcow2-refcount.c M block/qcow2-snapshot.c M block/qcow2.c M block/qcow2.h M block/qed-check.c M block/qed-table.c M block/qed.c M block/rbd.c M block/sheepdog.c M block/ssh.c M block/vdi.c M block/vhdx.c M block/vmdk.c M include/block/block.h M include/block/block_int.h M include/qapi/qmp/qdict.h M include/qemu/option.h M qapi/block-core.json M qobject/qdict.c M tests/check-qdict.c M tests/qemu-iotests/030 M tests/qemu-iotests/030.out M tests/qemu-iotests/049.out M tests/qemu-iotests/059 M tests/qemu-iotests/080 M tests/qemu-iotests/080.out M tests/qemu-iotests/096 M tests/qemu-iotests/112.out M tests/qemu-iotests/124 M tests/qemu-iotests/129 M tests/qemu-iotests/132 M tests/qemu-iotests/136 M tests/qemu-iotests/139 M tests/qemu-iotests/148 M tests/qemu-iotests/152 M tests/qemu-iotests/153 M tests/qemu-iotests/153.out M tests/qemu-iotests/163 M tests/qemu-iotests/203 M tests/qemu-iotests/203.out M tests/qemu-iotests/205 A tests/qemu-iotests/206 A tests/qemu-iotests/206.out A tests/qemu-iotests/207 A tests/qemu-iotests/207.out M tests/qemu-iotests/group M tests/test-qemu-opts.c M util/qemu-option.c Log Message: ----------- Merge remote-tracking branch 'remotes/kevin/tags/for-upstream' into staging Block layer patches # gpg: Signature made Fri 09 Mar 2018 15:09:20 GMT # gpg: using RSA key 7F09B272C88F2FD6 # gpg: Good signature from "Kevin Wolf <kw...@redhat.com>" # Primary key fingerprint: DC3D EB15 9A9A F95D 3D74 56FE 7F09 B272 C88F 2FD6 * remotes/kevin/tags/for-upstream: (56 commits) qemu-iotests: fix 203 migration completion race iotests: Tweak 030 in order to trigger a race condition with parallel jobs iotests: Skip test for ENOMEM error iotests: Mark all tests executable iotests: Test creating overlay when guest running qemu-iotests: Test ssh image creation over QMP qemu-iotests: Test qcow2 over file image creation with QMP block: Fail bdrv_truncate() with negative size file-posix: Fix no-op bdrv_truncate() with falloc preallocation ssh: Support .bdrv_co_create ssh: Pass BlockdevOptionsSsh to connect_to_ssh() ssh: QAPIfy host-key-check option ssh: Use QAPI BlockdevOptionsSsh object sheepdog: Support .bdrv_co_create sheepdog: QAPIfy "redundancy" create option nfs: Support .bdrv_co_create nfs: Use QAPI options in nfs_client_open() rbd: Use qemu_rbd_connect() in qemu_rbd_do_create() rbd: Assign s->snap/image_name in qemu_rbd_open() rbd: Support .bdrv_co_create ... Signed-off-by: Peter Maydell <peter.mayd...@linaro.org> Compare: https://github.com/qemu/qemu/compare/20f59d120053...12c06d6f967a