[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-block] [PATCH v4 02/11] block: Accept node-name for block-comm
From: |
Max Reitz |
Subject: |
Re: [Qemu-block] [PATCH v4 02/11] block: Accept node-name for block-commit |
Date: |
Mon, 18 Jul 2016 18:16:55 +0200 |
User-agent: |
Mozilla/5.0 (X11; Linux x86_64; rv:45.0) Gecko/20100101 Thunderbird/45.2.0 |
On 18.07.2016 18:13, Eric Blake wrote:
> On 07/18/2016 07:38 AM, Max Reitz wrote:
>> On 14.07.2016 15:28, Kevin Wolf wrote:
>>> In order to remove the necessity to use BlockBackend names in the
>>> external API, we want to allow node-names everywhere. This converts
>>> block-commit to accept a node-name without lifting the restriction that
>>> we're operating at a root node.
>>>
>>> As libvirt makes use of the DeviceNotFound error class, we must add
>>> explicit code to retain this behaviour because qmp_get_root_bs() only
>>> returns GenericErrors.
>>>
>
>>> @@ -3113,22 +3112,22 @@ void qmp_block_commit(bool has_job_id, const char
>>> *job_id, const char *device,
>>> * live commit feature versions; for this to work, we must make sure
>>> to
>>> * perform the device lookup before any generic errors that may occur
>>> in a
>>> * scenario in which all optional arguments are omitted. */
>
> Isn't this the [tail end of the] comment...
>
>>> - blk = blk_by_name(device);
>>> - if (!blk) {
>>> - error_set(errp, ERROR_CLASS_DEVICE_NOT_FOUND,
>>> - "Device '%s' not found", device);
>>> + bs = qmp_get_root_bs(device, &local_err);
>>> + if (!bs) {
>>> + bs = bdrv_lookup_bs(device, device, NULL);
>>> + if (!bs) {
>>> + error_free(local_err);
>>> + error_set(errp, ERROR_CLASS_DEVICE_NOT_FOUND,
>>> + "Device '%s' not found", device);
>>> + } else {
>>> + error_propagate(errp, local_err);
>>> + }
>>
>> I would have liked a comment here why this code exists; including an
>> explanation what libvirt uses DeviceNotFound for (i.e. for probing
>> whether qemu supports active commit).
>
> ...you are wanting?
Hm! Indeed it is. No complaints left for this patch, then.
Max
signature.asc
Description: OpenPGP digital signature
- [Qemu-block] [PATCH v4 00/11] block: Accept node-name in all node level QMP commands, Kevin Wolf, 2016/07/14
- [Qemu-block] [PATCH v4 04/11] block: Accept node-name for blockdev-mirror, Kevin Wolf, 2016/07/14
- [Qemu-block] [PATCH v4 05/11] block: Accept node-name for blockdev-snapshot-delete-internal-sync, Kevin Wolf, 2016/07/14
- [Qemu-block] [PATCH v4 03/11] block: Accept node-name for blockdev-backup, Kevin Wolf, 2016/07/14
- [Qemu-block] [PATCH v4 01/11] block: Accept node-name for block-stream, Kevin Wolf, 2016/07/14
- [Qemu-block] [PATCH v4 07/11] block: Accept node-name for change-backing-file, Kevin Wolf, 2016/07/14