Commit a4c7367f authored by Markus Armbruster's avatar Markus Armbruster
Browse files

QemuOpts: Drop qemu_opts_foreach() parameter abort_on_failure



When the argument is non-zero, qemu_opts_foreach() stops on callback
returning non-zero, and returns that value.

When the argument is zero, it doesn't stop, and returns the bit-wise
inclusive or of all the return values.  Funky :)

The callers that pass zero could just as well pass one, because their
callbacks can't return anything but zero:

* qemu_add_globals()'s callback qdev_add_one_global()

* qemu_config_write()'s callback config_write_opts()

* main()'s callbacks default_driver_check(), drive_enable_snapshot(),
  vnc_init_func()

Drop the parameter, and always stop.

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 8122928a
Loading
Loading
Loading
Loading
+2 −2
Original line number Diff line number Diff line
@@ -320,7 +320,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, 1);
    qemu_opts_foreach(&inject_error_opts, add_rule, &d);
    if (local_err) {
        error_propagate(errp, local_err);
        ret = -EINVAL;
@@ -328,7 +328,7 @@ static int read_config(BDRVBlkdebugState *s, const char *filename,
    }

    d.action = ACTION_SET_STATE;
    qemu_opts_foreach(&set_state_opts, add_rule, &d, 1);
    qemu_opts_foreach(&set_state_opts, add_rule, &d);
    if (local_err) {
        error_propagate(errp, local_err);
        ret = -EINVAL;
+1 −1
Original line number Diff line number Diff line
@@ -404,5 +404,5 @@ static int qdev_add_one_global(QemuOpts *opts, void *opaque)

void qemu_add_globals(void)
{
    qemu_opts_foreach(qemu_find_opts("global"), qdev_add_one_global, NULL, 0);
    qemu_opts_foreach(qemu_find_opts("global"), qdev_add_one_global, NULL);
}
+2 −2
Original line number Diff line number Diff line
@@ -126,9 +126,9 @@ QDict *qemu_opts_to_qdict(QemuOpts *opts, QDict *qdict);
void qemu_opts_absorb_qdict(QemuOpts *opts, QDict *qdict, Error **errp);

typedef int (*qemu_opts_loopfunc)(QemuOpts *opts, void *opaque);
int qemu_opts_foreach(QemuOptsList *list, qemu_opts_loopfunc func,
                      void *opaque);
void qemu_opts_print(QemuOpts *opts, const char *sep);
int qemu_opts_foreach(QemuOptsList *list, qemu_opts_loopfunc func, void *opaque,
                      int abort_on_failure);
void qemu_opts_print_help(QemuOptsList *list);
void qemu_opts_free(QemuOptsList *list);
QemuOptsList *qemu_opts_append(QemuOptsList *dst, QemuOptsList *list);
+3 −2
Original line number Diff line number Diff line
@@ -1373,10 +1373,11 @@ int net_init_clients(void)

    QTAILQ_INIT(&net_clients);

    if (qemu_opts_foreach(qemu_find_opts("netdev"), net_init_netdev, NULL, 1) == -1)
    if (qemu_opts_foreach(qemu_find_opts("netdev"), net_init_netdev, NULL)) {
        return -1;
    }

    if (qemu_opts_foreach(net, net_init_client, NULL, 1) == -1) {
    if (qemu_opts_foreach(net, net_init_client, NULL)) {
        return -1;
    }

+1 −1
Original line number Diff line number Diff line
@@ -245,7 +245,7 @@ int net_init_vhost_user(const NetClientOptions *opts, const char *name,

    /* verify net frontend */
    if (qemu_opts_foreach(qemu_find_opts("device"), net_vhost_check_net,
                          (char *)name, true) == -1) {
                          (char *)name)) {
        return -1;
    }

Loading