Branch: refs/heads/master Home: https://github.com/qemu/qemu Commit: e0b371ed5e2db079051139136fd0478728b6a58f https://github.com/qemu/qemu/commit/e0b371ed5e2db079051139136fd0478728b6a58f Author: Eric Blake <ebl...@redhat.com> Date: 2018-06-15 (Fri, 15 Jun 2018)
Changed paths: M qemu-img.c Log Message: ----------- qemu-img: Fix assert when mapping unaligned raw file Commit a290f085 exposed a latent bug in qemu-img map introduced during the conversion of block status to be byte-based. Earlier in commit 5e344dd8, the internal interface get_block_status() switched to take byte-based parameters, but still called a sector-based block layer function; as such, rounding was added in the lone caller to obey the contract. However, commit 237d78f8 changed get_block_status() to truly be byte-based, at which point rounding to sector boundaries can result in calling bdrv_block_status() with 'bytes == 0' (a coding error) when the boundary between data and a hole falls mid-sector (true for the past-EOF implicit hole present in POSIX files). Fix things by removing the rounding that is now no longer necessary. See also https://bugzilla.redhat.com/1589738 Fixes: 237d78f8 Reported-by: Dan Kenigsberg <dan...@redhat.com> Reported-by: Nir Soffer <nsof...@redhat.com> Reported-by: Maor Lipchuk <mlipc...@redhat.com> CC: qemu-sta...@nongnu.org Signed-off-by: Eric Blake <ebl...@redhat.com> Signed-off-by: Kevin Wolf <kw...@redhat.com> Commit: c6a9d2f6f9bc0c163b3a3073126464a2446bad5f https://github.com/qemu/qemu/commit/c6a9d2f6f9bc0c163b3a3073126464a2446bad5f Author: Eric Blake <ebl...@redhat.com> Date: 2018-06-15 (Fri, 15 Jun 2018) Changed paths: A tests/qemu-iotests/221 A tests/qemu-iotests/221.out M tests/qemu-iotests/group Log Message: ----------- iotests: Add test 221 to catch qemu-img map regression Although qemu-img creates aligned files (by rounding up), it must also gracefully handle files that are not sector-aligned. Test that the bug fixed in the previous patch does not recur. It's a bit annoying that we can see the (implicit) hole past the end of the file on to the next sector boundary, so if we ever reach the point where we report a byte-accurate size rather than our current behavior of always rounding up, this test will probably need a slight modification. Signed-off-by: Eric Blake <ebl...@redhat.com> Signed-off-by: Kevin Wolf <kw...@redhat.com> Commit: c5b09f3f2c4db32f39ecbde2cf2f78e7a657a85d https://github.com/qemu/qemu/commit/c5b09f3f2c4db32f39ecbde2cf2f78e7a657a85d Author: John Snow <js...@redhat.com> Date: 2018-06-15 (Fri, 15 Jun 2018) Changed paths: M qapi/job.json Log Message: ----------- jobs: fix stale wording During the design for manual completion, we decided not to use the "manual" property as a shorthand for both auto-dismiss and auto-finalize. Fix the wording. Signed-off-by: John Snow <js...@redhat.com> Reviewed-by: Jeff Cody <jc...@redhat.com> Reviewed-by: Markus Armbruster <arm...@redhat.com> Signed-off-by: Kevin Wolf <kw...@redhat.com> Commit: b8a366feb2aa2200c42fa983a9c607fb78a501db https://github.com/qemu/qemu/commit/b8a366feb2aa2200c42fa983a9c607fb78a501db Author: John Snow <js...@redhat.com> Date: 2018-06-15 (Fri, 15 Jun 2018) Changed paths: M qapi/job.json Log Message: ----------- jobs: fix verb references in docs These point to the job versions now, not the blockjob versions which don't really exist anymore. Except set-speed, which does. It sticks out like a sore thumb. This patch doesn't fix that, but it doesn't make it any worse, either. Signed-off-by: John Snow <js...@redhat.com> Reviewed-by: Jeff Cody <jc...@redhat.com> Reviewed-by: Markus Armbruster <arm...@redhat.com> Signed-off-by: Kevin Wolf <kw...@redhat.com> Commit: bb9f762ff35459e34630d731a5a91c02602150d1 https://github.com/qemu/qemu/commit/bb9f762ff35459e34630d731a5a91c02602150d1 Author: Markus Armbruster <arm...@redhat.com> Date: 2018-06-15 (Fri, 15 Jun 2018) Changed paths: M block/rbd.c Log Message: ----------- rbd: Drop deprecated -drive parameter "filename" Parameter "filename" is deprecated since commit 91589d9e5ca, v2.10.0. Time to get rid of it. Signed-off-by: Markus Armbruster <arm...@redhat.com> Reviewed-by: Kevin Wolf <kw...@redhat.com> Signed-off-by: Kevin Wolf <kw...@redhat.com> Commit: deadbb8ebb5c253da9b8ed02ab51a0fadf60edc7 https://github.com/qemu/qemu/commit/deadbb8ebb5c253da9b8ed02ab51a0fadf60edc7 Author: Markus Armbruster <arm...@redhat.com> Date: 2018-06-15 (Fri, 15 Jun 2018) Changed paths: M block/iscsi.c Log Message: ----------- iscsi: Drop deprecated -drive parameter "filename" Parameter "filename" is deprecated since commit 5c3ad1a6a8f, v2.10.0. Time to get rid of it. Signed-off-by: Markus Armbruster <arm...@redhat.com> Reviewed-by: Kevin Wolf <kw...@redhat.com> Signed-off-by: Kevin Wolf <kw...@redhat.com> Commit: 609f45ea9507fc1603eaeda7f5066b99beac6721 https://github.com/qemu/qemu/commit/609f45ea9507fc1603eaeda7f5066b99beac6721 Author: Max Reitz <mre...@redhat.com> Date: 2018-06-15 (Fri, 15 Jun 2018) Changed paths: M block.c M block/gluster.c M block/iscsi.c M block/nbd.c M block/nfs.c M block/parallels.c M block/qcow.c M block/qcow2.c M block/qed.c M block/quorum.c M block/rbd.c M block/sheepdog.c M block/snapshot.c M block/ssh.c M block/vhdx.c M block/vpc.c M block/vvfat.c M block/vxhs.c M blockdev.c A include/block/qdict.h M include/qapi/qmp/qdict.h M qobject/qdict.c M tests/check-qdict.c M tests/check-qobject.c M tests/test-replication.c M util/qemu-config.c Log Message: ----------- block: Add block-specific QDict header There are numerous QDict functions that have been introduced for and are used only by the block layer. Move their declarations into an own header file to reflect that. While qdict_extract_subqdict() is in fact used outside of the block layer (in util/qemu-config.c), it is still a function related very closely to how the block layer works with nested QDicts, namely by sometimes flattening them. Therefore, its declaration is put into this header as well and util/qemu-config.c includes it with a comment stating exactly which function it needs. Suggested-by: Markus Armbruster <arm...@redhat.com> Signed-off-by: Max Reitz <mre...@redhat.com> Message-Id: <20180509165530.29561-7-mre...@redhat.com> [Copyright note tweaked, superfluous includes dropped] Signed-off-by: Markus Armbruster <arm...@redhat.com> Reviewed-by: Kevin Wolf <kw...@redhat.com> Signed-off-by: Kevin Wolf <kw...@redhat.com> Commit: 0bcc8e5bd8d6fd6e5cb6462054f7cfa45b282f9a https://github.com/qemu/qemu/commit/0bcc8e5bd8d6fd6e5cb6462054f7cfa45b282f9a Author: Markus Armbruster <arm...@redhat.com> Date: 2018-06-15 (Fri, 15 Jun 2018) Changed paths: M MAINTAINERS M qobject/Makefile.objs A qobject/block-qdict.c M qobject/qdict.c M tests/Makefile.include A tests/check-block-qdict.c M tests/check-qdict.c Log Message: ----------- qobject: Move block-specific qdict code to block-qdict.c Pure code motion, except for two brace placements and a comment tweaked to appease checkpatch. Signed-off-by: Markus Armbruster <arm...@redhat.com> Reviewed-by: Kevin Wolf <kw...@redhat.com> Signed-off-by: Kevin Wolf <kw...@redhat.com> Commit: e5af0da1dcbfb1a4694150f9954554fb6df88819 https://github.com/qemu/qemu/commit/e5af0da1dcbfb1a4694150f9954554fb6df88819 Author: Markus Armbruster <arm...@redhat.com> Date: 2018-06-15 (Fri, 15 Jun 2018) Changed paths: M block/nfs.c M block/parallels.c M block/qcow.c M block/qcow2.c M block/qed.c M block/rbd.c M block/sheepdog.c M block/vhdx.c M block/vpc.c M include/block/qdict.h M qobject/block-qdict.c Log Message: ----------- block: Fix -blockdev for certain non-string scalars Configuration flows through the block subsystem in a rather peculiar way. Configuration made with -drive enters it as QemuOpts. Configuration made with -blockdev / blockdev-add enters it as QAPI type BlockdevOptions. The block subsystem uses QDict, QemuOpts and QAPI types internally. The precise flow is next to impossible to explain (I tried for this commit message, but gave up after wasting several hours). What I can explain is a flaw in the BlockDriver interface that leads to this bug: $ qemu-system-x86_64 -blockdev node-name=n1,driver=nfs,server.type=inet,server.host=localhost,path=/foo/bar,user=1234 qemu-system-x86_64: -blockdev node-name=n1,driver=nfs,server.type=inet,server.host=localhost,path=/foo/bar,user=1234: Internal error: parameter user invalid QMP blockdev-add is broken the same way. Here's what happens. The block layer passes configuration represented as flat QDict (with dotted keys) to BlockDriver methods .bdrv_file_open(). The QDict's members are typed according to the QAPI schema. nfs_file_open() converts it to QAPI type BlockdevOptionsNfs, with qdict_crumple() and a qobject input visitor. This visitor comes in two flavors. The plain flavor requires scalars to be typed according to the QAPI schema. That's the case here. The keyval flavor requires string scalars. That's not the case here. nfs_file_open() uses the latter, and promptly falls apart for members @user, @group, @tcp-syn-count, @readahead-size, @page-cache-size, @debug. Switching to the plain flavor would fix -blockdev, but break -drive, because there the scalars arrive in nfs_file_open() as strings. The proper fix would be to replace the QDict by QAPI type BlockdevOptions in the BlockDriver interface. Sadly, that's beyond my reach right now. Next best would be to fix the block layer to always pass correctly typed QDicts to the BlockDriver methods. Also beyond my reach. What I can do is throw another hack onto the pile: have nfs_file_open() convert all members to string, so use of the keyval flavor actually works, by replacing qdict_crumple() by new function qdict_crumple_for_keyval_qiv(). The pattern "pass result of qdict_crumple() to qobject_input_visitor_new_keyval()" occurs several times more: * qemu_rbd_open() Same issue as nfs_file_open(), but since BlockdevOptionsRbd has only string members, its only a latent bug. Fix it anyway. * parallels_co_create_opts(), qcow_co_create_opts(), qcow2_co_create_opts(), bdrv_qed_co_create_opts(), sd_co_create_opts(), vhdx_co_create_opts(), vpc_co_create_opts() These work, because they create the QDict with qemu_opts_to_qdict_filtered(), which creates only string scalars. The function sports a TODO comment asking for better typing; that's going to be fun. Use qdict_crumple_for_keyval_qiv() to be safe. Signed-off-by: Markus Armbruster <arm...@redhat.com> Reviewed-by: Kevin Wolf <kw...@redhat.com> Signed-off-by: Kevin Wolf <kw...@redhat.com> Commit: 374c52467a38c2e811f6c0db4edc9ea7d5f34341 https://github.com/qemu/qemu/commit/374c52467a38c2e811f6c0db4edc9ea7d5f34341 Author: Markus Armbruster <arm...@redhat.com> Date: 2018-06-15 (Fri, 15 Jun 2018) Changed paths: M block/nbd.c M block/sheepdog.c M block/ssh.c Log Message: ----------- block: Fix -drive for certain non-string scalars The previous commit fixed -blockdev breakage due to misuse of the qobject input visitor's keyval flavor in bdrv_file_open(). The commit message explain why using the plain flavor would be just as wrong; it would break -drive. Turns out we break it in three places: nbd_open(), sd_open() and ssh_file_open(). They are even marked FIXME. Example breakage: $ qemu-system-x86 -drive node-name=n1,driver=nbd,server.type=inet,server.host=localhost,server.port=1234,server.numeric=off qemu-system-x86: -drive node-name=n1,driver=nbd,server.type=inet,server.host=localhost,server.port=1234,server.numeric=off: Invalid parameter type for 'numeric', expected: boolean Fix it the same way: replace qdict_crumple() by qdict_crumple_for_keyval_qiv(), and switch from plain to the keyval flavor. Signed-off-by: Markus Armbruster <arm...@redhat.com> Reviewed-by: Kevin Wolf <kw...@redhat.com> Signed-off-by: Kevin Wolf <kw...@redhat.com> Commit: 92adf9dbcd3cf9cedddae995b04a99f5c42ae08c https://github.com/qemu/qemu/commit/92adf9dbcd3cf9cedddae995b04a99f5c42ae08c Author: Markus Armbruster <arm...@redhat.com> Date: 2018-06-15 (Fri, 15 Jun 2018) Changed paths: M block/parallels.c M block/qcow.c M block/qcow2.c M block/qed.c M block/vhdx.c M block/vpc.c Log Message: ----------- block: Clean up a misuse of qobject_to() in .bdrv_co_create_opts() The following pattern occurs in the .bdrv_co_create_opts() methods of parallels, qcow, qcow2, qed, vhdx and vpc: qobj = qdict_crumple_for_keyval_qiv(qdict, errp); qobject_unref(qdict); qdict = qobject_to(QDict, qobj); if (qdict == NULL) { ret = -EINVAL; goto done; } v = qobject_input_visitor_new_keyval(QOBJECT(qdict)); [...] ret = 0; done: qobject_unref(qdict); [...] return ret; If qobject_to() fails, we return failure without setting errp. That's wrong. As far as I can tell, it cannot fail here. Clean it up anyway, by removing the useless conversion. Signed-off-by: Markus Armbruster <arm...@redhat.com> Reviewed-by: Kevin Wolf <kw...@redhat.com> Signed-off-by: Kevin Wolf <kw...@redhat.com> Commit: af91062ee1408f7f5bb58389d355d29a5040c648 https://github.com/qemu/qemu/commit/af91062ee1408f7f5bb58389d355d29a5040c648 Author: Markus Armbruster <arm...@redhat.com> Date: 2018-06-15 (Fri, 15 Jun 2018) Changed paths: M block/nbd.c M block/nfs.c M block/parallels.c M block/qcow.c M block/qcow2.c M block/qed.c M block/rbd.c M block/sheepdog.c M block/ssh.c M block/vhdx.c M block/vpc.c M include/block/qdict.h M qobject/block-qdict.c Log Message: ----------- block: Factor out qobject_input_visitor_new_flat_confused() Signed-off-by: Markus Armbruster <arm...@redhat.com> Reviewed-by: Kevin Wolf <kw...@redhat.com> Signed-off-by: Kevin Wolf <kw...@redhat.com> Commit: f853465aacb45dbb07e4cc9815e39b55e10dc690 https://github.com/qemu/qemu/commit/f853465aacb45dbb07e4cc9815e39b55e10dc690 Author: Markus Armbruster <arm...@redhat.com> Date: 2018-06-15 (Fri, 15 Jun 2018) Changed paths: M block/crypto.c M block/vdi.c Log Message: ----------- block: Make remaining uses of qobject input visitor more robust Remaining uses of qobject_input_visitor_new_keyval() in the block subsystem: * block_crypto_open_opts_init() Currently doesn't visit any non-string scalars, thus safe. It's called from - block_crypto_open_luks() Creates the QDict with qemu_opts_to_qdict_filtered(), which creates only string scalars, but has a TODO asking for other types. - qcow_open() - qcow2_open(), qcow2_co_invalidate_cache(), qcow2_reopen_prepare() * block_crypto_create_opts_init(), called from - block_crypto_co_create_opts_luks() Also creates the QDict with qemu_opts_to_qdict_filtered(). * vdi_co_create_opts() Also creates the QDict with qemu_opts_to_qdict_filtered(). Replace these uses by qobject_input_visitor_new_flat_confused() for robustness. This adds crumpling. Right now, that's a no-op, but if we ever extend these things in non-flat ways, crumpling will be needed. Signed-off-by: Markus Armbruster <arm...@redhat.com> Signed-off-by: Kevin Wolf <kw...@redhat.com> Commit: eb0e0f7d3d4a9c585421d05b19ca71df5d69fc47 https://github.com/qemu/qemu/commit/eb0e0f7d3d4a9c585421d05b19ca71df5d69fc47 Author: Markus Armbruster <arm...@redhat.com> Date: 2018-06-15 (Fri, 15 Jun 2018) Changed paths: M qobject/block-qdict.c Log Message: ----------- block-qdict: Simplify qdict_flatten_qdict() There's no need to restart the loop. We don't elsewhere, e.g. in qdict_extract_subqdict(), qdict_join() and qemu_opts_absorb_qdict(). Simplify accordingly. Signed-off-by: Markus Armbruster <arm...@redhat.com> Reviewed-by: Kevin Wolf <kw...@redhat.com> Signed-off-by: Kevin Wolf <kw...@redhat.com> Commit: f1b34a248e9785e8cc0d28a1685d2cf4460bb256 https://github.com/qemu/qemu/commit/f1b34a248e9785e8cc0d28a1685d2cf4460bb256 Author: Markus Armbruster <arm...@redhat.com> Date: 2018-06-15 (Fri, 15 Jun 2018) Changed paths: M qobject/block-qdict.c Log Message: ----------- block-qdict: Tweak qdict_flatten_qdict(), qdict_flatten_qlist() qdict_flatten_qdict() skips copying scalars from @qdict to @target when the two are the same. Fair enough, but it uses a non-obvious test for "same". Replace it by the obvious one. While there, improve comments. Signed-off-by: Markus Armbruster <arm...@redhat.com> Reviewed-by: Kevin Wolf <kw...@redhat.com> Signed-off-by: Kevin Wolf <kw...@redhat.com> Commit: 3692b5d76819e573dedc9004c4b2b0e3dad83530 https://github.com/qemu/qemu/commit/3692b5d76819e573dedc9004c4b2b0e3dad83530 Author: Markus Armbruster <arm...@redhat.com> Date: 2018-06-15 (Fri, 15 Jun 2018) Changed paths: M qobject/block-qdict.c Log Message: ----------- block-qdict: Clean up qdict_crumple() a bit When you mix scalar and non-scalar keys, whether you get an "already set as scalar" or an "already set as dict" error depends on qdict iteration order. Neither message makes much sense. Replace by ""Cannot mix scalar and non-scalar keys". This is similar to the message we get for mixing list and non-list keys. I find qdict_crumple()'s first loop hard to understand. Rearrange it and add a comment. Signed-off-by: Markus Armbruster <arm...@redhat.com> Signed-off-by: Kevin Wolf <kw...@redhat.com> Commit: c78b8cfbfd53737353dc94dfb99c57d72ce31ab5 https://github.com/qemu/qemu/commit/c78b8cfbfd53737353dc94dfb99c57d72ce31ab5 Author: Markus Armbruster <arm...@redhat.com> Date: 2018-06-15 (Fri, 15 Jun 2018) Changed paths: M qobject/block-qdict.c Log Message: ----------- block-qdict: Simplify qdict_is_list() some Signed-off-by: Markus Armbruster <arm...@redhat.com> Reviewed-by: Kevin Wolf <kw...@redhat.com> Signed-off-by: Kevin Wolf <kw...@redhat.com> Commit: cddec036830ada5d5d45023bcfba09015b8ab394 https://github.com/qemu/qemu/commit/cddec036830ada5d5d45023bcfba09015b8ab394 Author: Markus Armbruster <arm...@redhat.com> Date: 2018-06-15 (Fri, 15 Jun 2018) Changed paths: M tests/check-block-qdict.c Log Message: ----------- check-block-qdict: Rename qdict_flatten()'s variables for clarity Signed-off-by: Markus Armbruster <arm...@redhat.com> Reviewed-by: Kevin Wolf <kw...@redhat.com> Signed-off-by: Kevin Wolf <kw...@redhat.com> Commit: bef96b1549907b005ce1fa1456d2a0910d2a1aa5 https://github.com/qemu/qemu/commit/bef96b1549907b005ce1fa1456d2a0910d2a1aa5 Author: Markus Armbruster <arm...@redhat.com> Date: 2018-06-15 (Fri, 15 Jun 2018) Changed paths: M tests/check-block-qdict.c Log Message: ----------- check-block-qdict: Cover flattening of empty lists and dictionaries Signed-off-by: Markus Armbruster <arm...@redhat.com> Reviewed-by: Kevin Wolf <kw...@redhat.com> Signed-off-by: Kevin Wolf <kw...@redhat.com> Commit: 2860b2b2cb883969c8f6464bd9f8bc88742c5c73 https://github.com/qemu/qemu/commit/2860b2b2cb883969c8f6464bd9f8bc88742c5c73 Author: Markus Armbruster <arm...@redhat.com> Date: 2018-06-15 (Fri, 15 Jun 2018) Changed paths: M qobject/block-qdict.c M tests/check-block-qdict.c Log Message: ----------- block: Fix -blockdev / blockdev-add for empty objects and arrays -blockdev and blockdev-add silently ignore empty objects and arrays in their argument. That's because qmp_blockdev_add() converts the argument to a flat QDict, and qdict_flatten() eats empty QDict and QList members. For instance, we ignore an empty BlockdevOptions member @cache. No real harm, as absent means the same as empty there. Thus, the flaw puts an artificial restriction on the QAPI schema: we can't have potentially empty objects and arrays within BlockdevOptions, except when they're optional and "empty" has the same meaning as "absent". Our QAPI schema satisfies this restriction (I checked), but it's a trap for the unwary, and a temptation to employ awkward workarounds for the wary. Let's get rid of it. Change qdict_flatten() and qdict_crumple() to treat empty dictionaries and lists exactly like scalars. Signed-off-by: Markus Armbruster <arm...@redhat.com> Reviewed-by: Kevin Wolf <kw...@redhat.com> Signed-off-by: Kevin Wolf <kw...@redhat.com> Commit: a3699de4dde82bc76b33a83798a9da82c2336cce https://github.com/qemu/qemu/commit/a3699de4dde82bc76b33a83798a9da82c2336cce Author: Markus Armbruster <arm...@redhat.com> Date: 2018-06-15 (Fri, 15 Jun 2018) Changed paths: M block/rbd.c M qapi/block-core.json Log Message: ----------- rbd: New parameter auth-client-required Parameter auth-client-required lets you configure authentication methods. We tried to provide that in v2.9.0, but backed out due to interface design doubts (commit 464444fcc16). This commit is similar to what we backed out, but simpler: we use a list of enumeration values instead of a list of objects with a member of enumeration type. Let's review our reasons for backing out the first try, as stated in the commit message: * The implementation uses deprecated rados_conf_set() key "auth_supported". No biggie. Fixed: we use "auth-client-required". * The implementation makes -drive silently ignore invalid parameters "auth" and "auth-supported.*.X" where X isn't "auth". Fixable (in fact I'm going to fix similar bugs around parameter server), so again no biggie. That fix is commit 2836284db60. This commit doesn't bring the bugs back. * BlockdevOptionsRbd member @password-secret applies only to authentication method cephx. Should it be a variant member of RbdAuthMethod? We've had time to ponder, and we decided to stick to the way Ceph configuration works: the key configured separately, and silently ignored if the authentication method doesn't use it. * BlockdevOptionsRbd member @user could apply to both methods cephx and none, but I'm not sure it's actually used with none. If it isn't, should it be a variant member of RbdAuthMethod? Likewise. * The client offers a *set* of authentication methods, not a list. Should the methods be optional members of BlockdevOptionsRbd instead of members of list @auth-supported? The latter begs the question what multiple entries for the same method mean. Trivial question now that RbdAuthMethod contains nothing but @type, but less so when RbdAuthMethod acquires other members, such the ones discussed above. Again, we decided to stick to the way Ceph configuration works, except we make auth-client-required a list of enumeration values instead of a string containing keywords separated by delimiters. * How BlockdevOptionsRbd member @auth-supported interacts with settings from a configuration file specified with @conf is undocumented. I suspect it's untested, too. Not actually true, the documentation for @conf says "Values in the configuration file will be overridden by options specified via QAPI", and we've tested this. Signed-off-by: Markus Armbruster <arm...@redhat.com> Reviewed-by: Kevin Wolf <kw...@redhat.com> Signed-off-by: Kevin Wolf <kw...@redhat.com> Commit: d083f954a95d37b460df0c2fbfe46ad7eb207b10 https://github.com/qemu/qemu/commit/d083f954a95d37b460df0c2fbfe46ad7eb207b10 Author: Markus Armbruster <arm...@redhat.com> Date: 2018-06-15 (Fri, 15 Jun 2018) Changed paths: M block/rbd.c M qapi/block-core.json Log Message: ----------- rbd: New parameter key-secret Legacy -drive supports "password-secret" parameter that isn't available with -blockdev / blockdev-add. That's because we backed out our first try to provide it there due to interface design doubts, in commit 577d8c9a811, v2.9.0. This is the second try. It brings back the parameter, except it's named "key-secret" now. Let's review our reasons for backing out the first try, as stated in the commit message: * BlockdevOptionsRbd member @password-secret isn't actually a password, it's a key generated by Ceph. Addressed by the rename. * We're not sure where member @password-secret belongs (see the previous commit). See previous commit. * How @password-secret interacts with settings from a configuration file specified with @conf is undocumented. Not actually true, the documentation for @conf says "Values in the configuration file will be overridden by options specified via QAPI", and we've tested this. Signed-off-by: Markus Armbruster <arm...@redhat.com> Reviewed-by: Kevin Wolf <kw...@redhat.com> Signed-off-by: Kevin Wolf <kw...@redhat.com> Commit: a7aff6dd10b16b67e8b142d0c94c5d92c3fe88f6 https://github.com/qemu/qemu/commit/a7aff6dd10b16b67e8b142d0c94c5d92c3fe88f6 Author: Kevin Wolf <kw...@redhat.com> Date: 2018-06-15 (Fri, 15 Jun 2018) Changed paths: M blockdev.c M hmp-commands.hx M hw/block/block.c M include/sysemu/blockdev.h M qemu-doc.texi M qemu-options.hx M tests/hd-geo-test.c Log Message: ----------- block: Remove deprecated -drive geometry options The -drive options cyls, heads, secs and trans were deprecated in QEMU 2.10. It's time to remove them. hd-geo-test tested both the old version with geometry options in -drive and the new one with -device. Therefore the code using -drive doesn't have to be replaced there, we just need to remove the -drive test cases. This in turn allows some simplification of the code. Signed-off-by: Kevin Wolf <kw...@redhat.com> Reviewed-by: Markus Armbruster <arm...@redhat.com> Commit: eae3bd1eb7c6b105d30ec06008b3bc3dfc5f45bb https://github.com/qemu/qemu/commit/eae3bd1eb7c6b105d30ec06008b3bc3dfc5f45bb Author: Kevin Wolf <kw...@redhat.com> Date: 2018-06-15 (Fri, 15 Jun 2018) Changed paths: M blockdev.c M device-hotplug.c M include/sysemu/blockdev.h M qemu-doc.texi M qemu-options.hx Log Message: ----------- block: Remove deprecated -drive option addr The -drive option addr was deprecated in QEMU 2.10. It's time to remove it. Signed-off-by: Kevin Wolf <kw...@redhat.com> Reviewed-by: Markus Armbruster <arm...@redhat.com> Reviewed-by: Jeff Cody <jc...@redhat.com> Commit: b0083267444a5e0f28391f6c2831a539f878d424 https://github.com/qemu/qemu/commit/b0083267444a5e0f28391f6c2831a539f878d424 Author: Kevin Wolf <kw...@redhat.com> Date: 2018-06-15 (Fri, 15 Jun 2018) Changed paths: M block/block-backend.c M blockdev.c M hw/block/block.c M hw/block/nvme.c M hw/block/virtio-blk.c M hw/ide/qdev.c M hw/scsi/scsi-disk.c M hw/usb/dev-storage.c M include/hw/block/block.h M include/sysemu/blockdev.h M qemu-doc.texi M qemu-options.hx M tests/ahci-test.c M tests/ide-test.c Log Message: ----------- block: Remove deprecated -drive option serial The -drive option serial was deprecated in QEMU 2.10. It's time to remove it. Tests need to be updated to set the serial number with -global instead of using the -drive option. Signed-off-by: Kevin Wolf <kw...@redhat.com> Reviewed-by: Markus Armbruster <arm...@redhat.com> Reviewed-by: Jeff Cody <jc...@redhat.com> Commit: 6266e900b8083945cb766b45c124fb3c42932cb3 https://github.com/qemu/qemu/commit/6266e900b8083945cb766b45c124fb3c42932cb3 Author: Kevin Wolf <kw...@redhat.com> Date: 2018-06-15 (Fri, 15 Jun 2018) Changed paths: M blockdev.c Log Message: ----------- block: Remove dead deprecation warning code We removed all options from the 'deprecated' array, so the code is dead and can be removed as well. Signed-off-by: Kevin Wolf <kw...@redhat.com> Reviewed-by: Markus Armbruster <arm...@redhat.com> Commit: 4359255ad39fdf116f0cf70a77ef5330c217e4da https://github.com/qemu/qemu/commit/4359255ad39fdf116f0cf70a77ef5330c217e4da Author: Peter Maydell <peter.mayd...@linaro.org> Date: 2018-06-15 (Fri, 15 Jun 2018) Changed paths: M MAINTAINERS M block.c M block/block-backend.c M block/crypto.c M block/gluster.c M block/iscsi.c M block/nbd.c M block/nfs.c M block/parallels.c M block/qcow.c M block/qcow2.c M block/qed.c M block/quorum.c M block/rbd.c M block/sheepdog.c M block/snapshot.c M block/ssh.c M block/vdi.c M block/vhdx.c M block/vpc.c M block/vvfat.c M block/vxhs.c M blockdev.c M device-hotplug.c M hmp-commands.hx M hw/block/block.c M hw/block/nvme.c M hw/block/virtio-blk.c M hw/ide/qdev.c M hw/scsi/scsi-disk.c M hw/usb/dev-storage.c A include/block/qdict.h M include/hw/block/block.h M include/qapi/qmp/qdict.h M include/sysemu/blockdev.h M qapi/block-core.json M qapi/job.json M qemu-doc.texi M qemu-img.c M qemu-options.hx M qobject/Makefile.objs A qobject/block-qdict.c M qobject/qdict.c M tests/Makefile.include M tests/ahci-test.c A tests/check-block-qdict.c M tests/check-qdict.c M tests/check-qobject.c M tests/hd-geo-test.c M tests/ide-test.c A tests/qemu-iotests/221 A tests/qemu-iotests/221.out M tests/qemu-iotests/group M tests/test-replication.c M util/qemu-config.c Log Message: ----------- Merge remote-tracking branch 'remotes/kevin/tags/for-upstream' into staging Block layer patches: - Fix options that work only with -drive or -blockdev, but not with both, because of QDict type confusion - rbd: Add options 'auth-client-required' and 'key-secret' - Remove deprecated -drive options serial/addr/cyls/heads/secs/trans - rbd, iscsi: Remove deprecated 'filename' option - Fix 'qemu-img map' crash with unaligned image size - Improve QMP documentation for jobs # gpg: Signature made Fri 15 Jun 2018 15:20:03 BST # 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: (26 commits) block: Remove dead deprecation warning code block: Remove deprecated -drive option serial block: Remove deprecated -drive option addr block: Remove deprecated -drive geometry options rbd: New parameter key-secret rbd: New parameter auth-client-required block: Fix -blockdev / blockdev-add for empty objects and arrays check-block-qdict: Cover flattening of empty lists and dictionaries check-block-qdict: Rename qdict_flatten()'s variables for clarity block-qdict: Simplify qdict_is_list() some block-qdict: Clean up qdict_crumple() a bit block-qdict: Tweak qdict_flatten_qdict(), qdict_flatten_qlist() block-qdict: Simplify qdict_flatten_qdict() block: Make remaining uses of qobject input visitor more robust block: Factor out qobject_input_visitor_new_flat_confused() block: Clean up a misuse of qobject_to() in .bdrv_co_create_opts() block: Fix -drive for certain non-string scalars block: Fix -blockdev for certain non-string scalars qobject: Move block-specific qdict code to block-qdict.c block: Add block-specific QDict header ... Signed-off-by: Peter Maydell <peter.mayd...@linaro.org> Compare: https://github.com/qemu/qemu/compare/81d386479640...4359255ad39f **NOTE:** This service been marked for deprecation: https://developer.github.com/changes/2018-04-25-github-services-deprecation/ Functionality will be removed from GitHub.com on January 31st, 2019.