[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-block] [PATCH v4 09/11] block: Accept node-name for drive-mirr
From: |
Max Reitz |
Subject: |
Re: [Qemu-block] [PATCH v4 09/11] block: Accept node-name for drive-mirror |
Date: |
Wed, 3 Aug 2016 13:16:14 +0200 |
User-agent: |
Mozilla/5.0 (X11; Linux x86_64; rv:45.0) Gecko/20100101 Thunderbird/45.2.0 |
On 02.08.2016 18:19, Kevin Wolf wrote:
> Am 18.07.2016 um 16:30 hat Max Reitz geschrieben:
>> 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
>>> drive-mirror to accept a node-name without lifting the restriction that
>>> we're operating at a root node.
>>>
>>> In case of an invalid device name, the command returns the GenericError
>>> error class now instead of DeviceNotFound, because this is what
>>> qmp_get_root_bs() returns.
>>>
>>> Signed-off-by: Kevin Wolf <address@hidden>
>
>>> - aio_context = blk_get_aio_context(blk);
>>> + aio_context = bdrv_get_aio_context(bs);
>>> aio_context_acquire(aio_context);
>>>
>>> - if (!blk_is_available(blk)) {
>>> - error_setg(errp, QERR_DEVICE_HAS_NO_MEDIUM, device);
>>> - goto out;
>>> - }
>>> - bs = blk_bs(blk);
>>> if (!has_mode) {
>>> mode = NEW_IMAGE_MODE_ABSOLUTE_PATHS;
>>> }
>>
>> After this, bs->drv may be used. So I think we should keep a
>> bdrv_is_inserted() or bs->drv check here.
>
> Do BDSes with bs->drv == NULL still happen normally, i.e. other than in
> cases where a driver gives up on a broken image? If not, maybe doing
> that check in qmp_get_root_bs() would be best.
Well, while corrupt qcow2 images aren't strictly normal, it can happen
and I don't think qemu should crash if one is encountered.
Max
signature.asc
Description: OpenPGP digital signature