Commit 3d1f8b07 authored by John Snow's avatar John Snow Committed by Max Reitz
Browse files

jobs: canonize Error object



Jobs presently use both an Error object in the case of the create job,
and char strings in the case of generic errors elsewhere.

Unify the two paths as just j->err, and remove the extra argument from
job_completed. The integer error code for job_completed is kept for now,
to be removed shortly in a separate patch.

Signed-off-by: default avatarJohn Snow <jsnow@redhat.com>
Message-id: 20180830015734.19765-3-jsnow@redhat.com
[mreitz: Dropped a superfluous g_strdup()]
Reviewed-by: default avatarEric Blake <eblake@redhat.com>
Signed-off-by: default avatarMax Reitz <mreitz@redhat.com>
parent f67432a2
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -388,7 +388,7 @@ static void backup_complete(Job *job, void *opaque)
{
    BackupCompleteData *data = opaque;

    job_completed(job, data->ret, NULL);
    job_completed(job, data->ret);
    g_free(data);
}

+1 −1
Original line number Diff line number Diff line
@@ -117,7 +117,7 @@ static void commit_complete(Job *job, void *opaque)
     * bdrv_set_backing_hd() to fail. */
    block_job_remove_all_bdrv(bjob);

    job_completed(job, ret, NULL);
    job_completed(job, ret);
    g_free(data);

    /* If bdrv_drop_intermediate() didn't already do that, remove the commit
+2 −3
Original line number Diff line number Diff line
@@ -35,14 +35,13 @@ typedef struct BlockdevCreateJob {
    BlockDriver *drv;
    BlockdevCreateOptions *opts;
    int ret;
    Error *err;
} BlockdevCreateJob;

static void blockdev_create_complete(Job *job, void *opaque)
{
    BlockdevCreateJob *s = container_of(job, BlockdevCreateJob, common);

    job_completed(job, s->ret, s->err);
    job_completed(job, s->ret);
}

static int coroutine_fn blockdev_create_run(Job *job, Error **errp)
@@ -50,7 +49,7 @@ static int coroutine_fn blockdev_create_run(Job *job, Error **errp)
    BlockdevCreateJob *s = container_of(job, BlockdevCreateJob, common);

    job_progress_set_remaining(&s->common, 1);
    s->ret = s->drv->bdrv_co_create(s->opts, &s->err);
    s->ret = s->drv->bdrv_co_create(s->opts, errp);
    job_progress_update(&s->common, 1);

    qapi_free_BlockdevCreateOptions(s->opts);
+1 −1
Original line number Diff line number Diff line
@@ -710,7 +710,7 @@ static void mirror_exit(Job *job, void *opaque)
    blk_insert_bs(bjob->blk, mirror_top_bs, &error_abort);

    bs_opaque->job = NULL;
    job_completed(job, data->ret, NULL);
    job_completed(job, data->ret);

    g_free(data);
    bdrv_drained_end(src);
+1 −1
Original line number Diff line number Diff line
@@ -93,7 +93,7 @@ out:
    }

    g_free(s->backing_file_str);
    job_completed(job, data->ret, NULL);
    job_completed(job, data->ret);
    g_free(data);
}

Loading