On Tue 10 Nov 2015 04:44:22 AM CET, Max Reitz wrote:
> @@ -1398,32 +1397,21 @@ static int bdrv_open_inherit(BlockDriverState **pbs, 
> const char *filename,
>          bool options_non_empty = options ? qdict_size(options) : false;
>          QDECREF(options);
>  
> -        if (*pbs) {
> -            error_setg(errp, "Cannot reuse an existing BDS when referencing "
> -                       "another block device");
> -            return -EINVAL;
> -        }
> -
>          if (filename || options_non_empty) {
>              error_setg(errp, "Cannot reference an existing block device with 
> "
>                         "additional options or a new filename");
> -            return -EINVAL;
> +            return NULL;
>          }
>  
>          bs = bdrv_lookup_bs(reference, reference, errp);
>          if (!bs) {
> -            return -ENODEV;
> +            return NULL;
>          }
>          bdrv_ref(bs);
> -        *pbs = bs;
> -        return 0;
> +        return bs;
>      }

This last part is probably a bit simpler with just one return statement:

           bs = bdrv_lookup_bs(reference, reference, errp);
           if (bs) {
               bdrv_ref(bs);
           }
           return bs;

but I'm fine either way.

Reviewed-by: Alberto Garcia <be...@igalia.com>

Berto

Reply via email to