Am 28.10.2010 10:30, schrieb Stefan Hajnoczi:
> On Wed, Oct 27, 2010 at 7:19 PM, Anthony Liguori <aligu...@us.ibm.com> wrote:
>> Signed-off-by: Anthony Liguori <aligu...@us.ibm.com>
>>
>> diff --git a/block.c b/block.c
>> index 1a965b2..00b6f21 100644
>> --- a/block.c
>> +++ b/block.c
>> @@ -603,10 +603,16 @@ int bdrv_open(BlockDriverState *bs, const char 
>> *filename, int flags,
>>         BlockDriver *back_drv = NULL;
>>
>>         bs->backing_hd = bdrv_new("");
>> -        path_combine(backing_filename, sizeof(backing_filename),
>> -                     filename, bs->backing_file);
>> -        if (bs->backing_format[0] != '\0')
>> -            back_drv = bdrv_find_format(bs->backing_format);
>> +        back_drv = bdrv_find_protocol(bs->backing_file);
>> +        if (!back_drv) {
>> +            path_combine(backing_filename, sizeof(backing_filename),
>> +                         filename, bs->backing_file);
>> +            if (bs->backing_format[0] != '\0')
>> +                back_drv = bdrv_find_format(bs->backing_format);
>> +        } else {
>> +            pstrcpy(backing_filename, sizeof(backing_filename),
>> +                    bs->backing_file);
>> +        }
>>
>>         /* backing files always opened read-only */
>>         back_flags =
>> --
>> 1.7.0.4
> 
> I think this makes sense.
> 
> Now it is possible to specify backing files that are relative to
> QEMU's current working directory using file:filename.  I don't see
> harm in this.

It would be more consistent if it was relative to the image, but there's
no meaningful way to do that for arbitrary protocols. It's definitely
not worse than before the change.

Kevin

Reply via email to