Am 08.02.2014 um 18:39 hat Max Reitz geschrieben: > The fail and success paths of bdrv_file_open() may be further shortened > by reusing code already existent in bdrv_open(). This includes > bdrv_file_open() not taking the reference to options which allows the > removal of QDECREF(options) in that function. > > Signed-off-by: Max Reitz <mre...@redhat.com>
> @@ -1001,41 +1003,35 @@ static int bdrv_file_open(BlockDriverState *bs, const > char *filename, > > /* Parse the filename and open it */ > if (drv->bdrv_parse_filename && filename) { > - drv->bdrv_parse_filename(filename, options, &local_err); > + drv->bdrv_parse_filename(filename, *options, &local_err); > if (error_is_set(&local_err)) { > error_propagate(errp, local_err); > ret = -EINVAL; > goto fail; > } > - qdict_del(options, "filename"); > + qdict_del(*options, "filename"); > + } else if (drv->bdrv_needs_filename && !filename) { > + error_setg(errp, "The '%s' block driver requires a file name", > + drv->format_name); > + ret = -EINVAL; > + goto fail; > } How did this part end up in this patch? It doesn't look wrong, though I think bdrv_open_common() should already catch it. In any case it's an addition that the commit message didn't mention. Kevin