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 <kw...@redhat.com> > --- > 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 <ebl...@redhat.com> -- Eric Blake eblake redhat com +1-919-301-3266 Libvirt virtualization library http://libvirt.org
signature.asc
Description: OpenPGP digital signature