mirror of https://gitee.com/openkylin/qemu.git
blkdebug: Always call read_config()
Move the check whether there actually is a config file into the read_config() function. Signed-off-by: Max Reitz <mreitz@redhat.com> Reviewed-by: Kevin Wolf <kwolf@redhat.com> Reviewed-by: Eric Blake <eblake@redhat.com> Signed-off-by: Kevin Wolf <kwolf@redhat.com>
This commit is contained in:
parent
adf5c449e5
commit
85a040e548
|
@ -273,21 +273,23 @@ static void remove_rule(BlkdebugRule *rule)
|
||||||
|
|
||||||
static int read_config(BDRVBlkdebugState *s, const char *filename, Error **errp)
|
static int read_config(BDRVBlkdebugState *s, const char *filename, Error **errp)
|
||||||
{
|
{
|
||||||
FILE *f;
|
FILE *f = NULL;
|
||||||
int ret;
|
int ret;
|
||||||
struct add_rule_data d;
|
struct add_rule_data d;
|
||||||
|
|
||||||
f = fopen(filename, "r");
|
if (filename) {
|
||||||
if (f == NULL) {
|
f = fopen(filename, "r");
|
||||||
error_setg_errno(errp, errno, "Could not read blkdebug config file");
|
if (f == NULL) {
|
||||||
return -errno;
|
error_setg_errno(errp, errno, "Could not read blkdebug config file");
|
||||||
}
|
return -errno;
|
||||||
|
}
|
||||||
|
|
||||||
ret = qemu_config_parse(f, config_groups, filename);
|
ret = qemu_config_parse(f, config_groups, filename);
|
||||||
if (ret < 0) {
|
if (ret < 0) {
|
||||||
error_setg(errp, "Could not parse blkdebug config file");
|
error_setg(errp, "Could not parse blkdebug config file");
|
||||||
ret = -EINVAL;
|
ret = -EINVAL;
|
||||||
goto fail;
|
goto fail;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
d.s = s;
|
d.s = s;
|
||||||
|
@ -301,7 +303,9 @@ static int read_config(BDRVBlkdebugState *s, const char *filename, Error **errp)
|
||||||
fail:
|
fail:
|
||||||
qemu_opts_reset(&inject_error_opts);
|
qemu_opts_reset(&inject_error_opts);
|
||||||
qemu_opts_reset(&set_state_opts);
|
qemu_opts_reset(&set_state_opts);
|
||||||
fclose(f);
|
if (f) {
|
||||||
|
fclose(f);
|
||||||
|
}
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -374,11 +378,9 @@ static int blkdebug_open(BlockDriverState *bs, QDict *options, int flags,
|
||||||
|
|
||||||
/* Read rules from config file */
|
/* Read rules from config file */
|
||||||
config = qemu_opt_get(opts, "config");
|
config = qemu_opt_get(opts, "config");
|
||||||
if (config) {
|
ret = read_config(s, config, errp);
|
||||||
ret = read_config(s, config, errp);
|
if (ret) {
|
||||||
if (ret) {
|
goto fail;
|
||||||
goto fail;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Set initial state */
|
/* Set initial state */
|
||||||
|
|
Loading…
Reference in New Issue