mirror of
https://gitlab.com/qemu-project/qemu
synced 2024-09-06 18:05:37 +00:00
block: Drop drv parameter from bdrv_fill_options()
Now that this parameter is effectively unused, we can drop it and change the function accordingly. Signed-off-by: Max Reitz <mreitz@redhat.com> Reviewed-by: Alberto Garcia <berto@igalia.com> Signed-off-by: Kevin Wolf <kwolf@redhat.com>
This commit is contained in:
parent
ce34377124
commit
053e1578c9
59
block.c
59
block.c
|
@ -996,13 +996,13 @@ static QDict *parse_json_filename(const char *filename, Error **errp)
|
||||||
* block driver has been specified explicitly.
|
* block driver has been specified explicitly.
|
||||||
*/
|
*/
|
||||||
static int bdrv_fill_options(QDict **options, const char **pfilename,
|
static int bdrv_fill_options(QDict **options, const char **pfilename,
|
||||||
int *flags, BlockDriver *drv, Error **errp)
|
int *flags, Error **errp)
|
||||||
{
|
{
|
||||||
const char *filename = *pfilename;
|
const char *filename = *pfilename;
|
||||||
const char *drvname;
|
const char *drvname;
|
||||||
bool protocol = *flags & BDRV_O_PROTOCOL;
|
bool protocol = *flags & BDRV_O_PROTOCOL;
|
||||||
bool parse_filename = false;
|
bool parse_filename = false;
|
||||||
BlockDriver *tmp_drv;
|
BlockDriver *drv = NULL;
|
||||||
Error *local_err = NULL;
|
Error *local_err = NULL;
|
||||||
|
|
||||||
/* Parse json: pseudo-protocol */
|
/* Parse json: pseudo-protocol */
|
||||||
|
@ -1021,15 +1021,15 @@ static int bdrv_fill_options(QDict **options, const char **pfilename,
|
||||||
}
|
}
|
||||||
|
|
||||||
drvname = qdict_get_try_str(*options, "driver");
|
drvname = qdict_get_try_str(*options, "driver");
|
||||||
|
if (drvname) {
|
||||||
/* If the user has explicitly specified the driver, this choice should
|
drv = bdrv_find_format(drvname);
|
||||||
* override the BDRV_O_PROTOCOL flag */
|
if (!drv) {
|
||||||
tmp_drv = drv;
|
error_setg(errp, "Unknown driver '%s'", drvname);
|
||||||
if (!tmp_drv && drvname) {
|
return -ENOENT;
|
||||||
tmp_drv = bdrv_find_format(drvname);
|
}
|
||||||
}
|
/* If the user has explicitly specified the driver, this choice should
|
||||||
if (tmp_drv) {
|
* override the BDRV_O_PROTOCOL flag */
|
||||||
protocol = tmp_drv->bdrv_file_open;
|
protocol = drv->bdrv_file_open;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (protocol) {
|
if (protocol) {
|
||||||
|
@ -1053,33 +1053,18 @@ static int bdrv_fill_options(QDict **options, const char **pfilename,
|
||||||
/* Find the right block driver */
|
/* Find the right block driver */
|
||||||
filename = qdict_get_try_str(*options, "filename");
|
filename = qdict_get_try_str(*options, "filename");
|
||||||
|
|
||||||
if (drv) {
|
if (!drvname && protocol) {
|
||||||
if (drvname) {
|
if (filename) {
|
||||||
error_setg(errp, "Driver specified twice");
|
drv = bdrv_find_protocol(filename, parse_filename, errp);
|
||||||
return -EINVAL;
|
if (!drv) {
|
||||||
}
|
|
||||||
drvname = drv->format_name;
|
|
||||||
qdict_put(*options, "driver", qstring_from_str(drvname));
|
|
||||||
} else {
|
|
||||||
if (!drvname && protocol) {
|
|
||||||
if (filename) {
|
|
||||||
drv = bdrv_find_protocol(filename, parse_filename, errp);
|
|
||||||
if (!drv) {
|
|
||||||
return -EINVAL;
|
|
||||||
}
|
|
||||||
|
|
||||||
drvname = drv->format_name;
|
|
||||||
qdict_put(*options, "driver", qstring_from_str(drvname));
|
|
||||||
} else {
|
|
||||||
error_setg(errp, "Must specify either driver or file");
|
|
||||||
return -EINVAL;
|
return -EINVAL;
|
||||||
}
|
}
|
||||||
} else if (drvname) {
|
|
||||||
drv = bdrv_find_format(drvname);
|
drvname = drv->format_name;
|
||||||
if (!drv) {
|
qdict_put(*options, "driver", qstring_from_str(drvname));
|
||||||
error_setg(errp, "Unknown driver '%s'", drvname);
|
} else {
|
||||||
return -ENOENT;
|
error_setg(errp, "Must specify either driver or file");
|
||||||
}
|
return -EINVAL;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1474,7 +1459,7 @@ static int bdrv_open_inherit(BlockDriverState **pbs, const char *filename,
|
||||||
flags = child_role->inherit_flags(parent->open_flags);
|
flags = child_role->inherit_flags(parent->open_flags);
|
||||||
}
|
}
|
||||||
|
|
||||||
ret = bdrv_fill_options(&options, &filename, &flags, NULL, &local_err);
|
ret = bdrv_fill_options(&options, &filename, &flags, &local_err);
|
||||||
if (local_err) {
|
if (local_err) {
|
||||||
goto fail;
|
goto fail;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue