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,10 +273,11 @@ 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;
|
||||||
|
|
||||||
|
if (filename) {
|
||||||
f = fopen(filename, "r");
|
f = fopen(filename, "r");
|
||||||
if (f == NULL) {
|
if (f == NULL) {
|
||||||
error_setg_errno(errp, errno, "Could not read blkdebug config file");
|
error_setg_errno(errp, errno, "Could not read blkdebug config file");
|
||||||
|
@ -289,6 +290,7 @@ static int read_config(BDRVBlkdebugState *s, const char *filename, Error **errp)
|
||||||
ret = -EINVAL;
|
ret = -EINVAL;
|
||||||
goto fail;
|
goto fail;
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
d.s = s;
|
d.s = s;
|
||||||
d.action = ACTION_INJECT_ERROR;
|
d.action = ACTION_INJECT_ERROR;
|
||||||
|
@ -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);
|
||||||
|
if (f) {
|
||||||
fclose(f);
|
fclose(f);
|
||||||
|
}
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -374,12 +378,10 @@ 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 */
|
||||||
s->state = 1;
|
s->state = 1;
|
||||||
|
|
Loading…
Reference in a new issue