qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Qemu-devel] [PATCH 5/9] block: Use common driver selection code for


From: Eric Blake
Subject: Re: [Qemu-devel] [PATCH 5/9] block: Use common driver selection code for bdrv_open_file()
Date: Wed, 11 Jun 2014 14:24:10 -0600
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:24.0) Gecko/20100101 Thunderbird/24.5.0

On 06/11/2014 08:04 AM, Kevin Wolf wrote:
> This moves the bdrv_open_file() call a bit down so that it can use the
> bdrv_open() code that selects the right block driver.
> 
> The code between the old and the new call site is either common code
> (the error message for an unknown driver has been unified now) or
> doesn't run with cleared BDRV_O_PROTOCOL (added an if block in one
> place, whereas the right path was already asserted in another place)
> 
> Signed-off-by: Kevin Wolf <address@hidden>
> ---
>  block.c | 71 
> ++++++++++++++++++++++++++++-------------------------------------
>  1 file changed, 30 insertions(+), 41 deletions(-)
> 

> diff --git a/block.c b/block.c
> index 011cfc4..2aa0a56 100644
> --- a/block.c
> +++ b/block.c
> @@ -1136,25 +1136,14 @@ static int bdrv_fill_options(QDict **options, const 
> char **pfilename, int flags,
>   * returns. Then, the caller is responsible for freeing it. If it intends to
>   * reuse the QDict, QINCREF() should be called beforehand.
>   */
> -static int bdrv_file_open(BlockDriverState *bs, QDict **options, int flags,
> -                          Error **errp)
> +static int bdrv_file_open(BlockDriverState *bs, BlockDriver *drv,
> +                          QDict **options, int flags, Error **errp)
>  {
> -    BlockDriver *drv;
>      const char *filename;
> -    const char *drvname;
>      Error *local_err = NULL;
>      int ret;
>  
>      filename = qdict_get_try_str(*options, "filename");
> -    drvname = qdict_get_str(*options, "driver");
> -
> -    drv = bdrv_find_format(drvname);
> -    if (!drv) {
> -        error_setg(errp, "Unknown driver '%s'", drvname);
> -        ret = -ENOENT;
> -        goto fail;
> -    }
> -    qdict_del(*options, "driver");

Ah, this addresses another question I asked earlier.

Reviewed-by: Eric Blake <address@hidden>

-- 
Eric Blake   eblake redhat com    +1-919-301-3266
Libvirt virtualization library http://libvirt.org

Attachment: signature.asc
Description: OpenPGP digital signature


reply via email to

[Prev in Thread] Current Thread [Next in Thread]