|
From: | Anthony Liguori |
Subject: | Re: [Qemu-devel] [PATCH] block: fix the use of protocols in backing files |
Date: | Thu, 04 Nov 2010 08:14:47 -0500 |
User-agent: | Mozilla/5.0 (X11; U; Linux x86_64; en-US; rv:1.9.1.15) Gecko/20101027 Lightning/1.0b1 Thunderbird/3.0.10 |
On 11/04/2010 07:54 AM, Kevin Wolf wrote:
Am 27.10.2010 20:19, schrieb Anthony Liguori:Signed-off-by: Anthony Liguori<address@hidden> 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) {If no protocol is specified, bdrv_find_protocol doesn't return NULL but the file: driver.
An ugly way to handle this would be to do if (strstr(bs->backing_file, ":") == NULL) instead.
A deeper refactoring could return NULL in bdrv_find_protocol and fixup the callers to default to file: if none are specified.
What do you think? Regards, Anthony Liguori
This breaks all backing file related qemu-iotests cases because qcow2 backing files are opened as raw files now. Kevin
[Prev in Thread] | Current Thread | [Next in Thread] |