Commit 8809cfc3 authored by Markus Armbruster's avatar Markus Armbruster
Browse files

blkdebug: Simplify passing of Error through qemu_opts_foreach()



Cc: Kevin Wolf <kwolf@redhat.com>
Cc: qemu-block@nongnu.org
Signed-off-by: default avatarMarkus Armbruster <armbru@redhat.com>
Reviewed-by: default avatarEric Blake <eblake@redhat.com>
Acked-by: default avatarKevin Wolf <kwolf@redhat.com>
parent 28d0de7a
Loading
Loading
Loading
Loading
+4 −6
Original line number Diff line number Diff line
@@ -216,7 +216,6 @@ static int get_event_by_name(const char *name, BlkDebugEvent *event)
struct add_rule_data {
    BDRVBlkdebugState *s;
    int action;
    Error **errp;
};

static int add_rule(void *opaque, QemuOpts *opts, Error **errp)
@@ -230,10 +229,10 @@ static int add_rule(void *opaque, QemuOpts *opts, Error **errp)
    /* Find the right event for the rule */
    event_name = qemu_opt_get(opts, "event");
    if (!event_name) {
        error_setg(d->errp, "Missing event name for rule");
        error_setg(errp, "Missing event name for rule");
        return -1;
    } else if (get_event_by_name(event_name, &event) < 0) {
        error_setg(d->errp, "Invalid event name \"%s\"", event_name);
        error_setg(errp, "Invalid event name \"%s\"", event_name);
        return -1;
    }

@@ -319,8 +318,7 @@ static int read_config(BDRVBlkdebugState *s, const char *filename,

    d.s = s;
    d.action = ACTION_INJECT_ERROR;
    d.errp = &local_err;
    qemu_opts_foreach(&inject_error_opts, add_rule, &d, NULL);
    qemu_opts_foreach(&inject_error_opts, add_rule, &d, &local_err);
    if (local_err) {
        error_propagate(errp, local_err);
        ret = -EINVAL;
@@ -328,7 +326,7 @@ static int read_config(BDRVBlkdebugState *s, const char *filename,
    }

    d.action = ACTION_SET_STATE;
    qemu_opts_foreach(&set_state_opts, add_rule, &d, NULL);
    qemu_opts_foreach(&set_state_opts, add_rule, &d, &local_err);
    if (local_err) {
        error_propagate(errp, local_err);
        ret = -EINVAL;