aboutsummaryrefslogtreecommitdiff
path: root/block/mirror.c
diff options
context:
space:
mode:
authorKevin Wolf <kwolf@redhat.com>2018-04-12 17:29:59 +0200
committerKevin Wolf <kwolf@redhat.com>2018-05-23 14:30:49 +0200
commit33e9e9bd62d9ae00880d9e12ad8a5b7d2c00e8a5 (patch)
treeeacaf4579f55de26f5a3ca8c45fa0faa60a19ba3 /block/mirror.c
parenta81e0a825e3b89039a427bca037112f461b95fec (diff)
job: Create Job, JobDriver and job_create()
This is the first step towards creating an infrastructure for generic background jobs that aren't tied to a block device. For now, Job only stores its ID and JobDriver, the rest stays in BlockJob. The following patches will move over more parts of BlockJob to Job if they are meaningful outside the context of a block job. BlockJob.driver is now redundant, but this patch leaves it around to avoid unnecessary churn. The next patches will get rid of almost all of its uses anyway so that it can be removed later with much less churn. Signed-off-by: Kevin Wolf <kwolf@redhat.com> Reviewed-by: Max Reitz <mreitz@redhat.com> Reviewed-by: John Snow <jsnow@redhat.com>
Diffstat (limited to 'block/mirror.c')
-rw-r--r--block/mirror.c10
1 files changed, 7 insertions, 3 deletions
diff --git a/block/mirror.c b/block/mirror.c
index a4197bb975..aa1d6b742e 100644
--- a/block/mirror.c
+++ b/block/mirror.c
@@ -913,7 +913,7 @@ static void mirror_complete(BlockJob *job, Error **errp)
if (!s->synced) {
error_setg(errp, "The active block job '%s' cannot be completed",
- job->id);
+ job->job.id);
return;
}
@@ -986,7 +986,9 @@ static void mirror_drain(BlockJob *job)
}
static const BlockJobDriver mirror_job_driver = {
- .instance_size = sizeof(MirrorBlockJob),
+ .job_driver = {
+ .instance_size = sizeof(MirrorBlockJob),
+ },
.job_type = BLOCK_JOB_TYPE_MIRROR,
.start = mirror_run,
.complete = mirror_complete,
@@ -996,7 +998,9 @@ static const BlockJobDriver mirror_job_driver = {
};
static const BlockJobDriver commit_active_job_driver = {
- .instance_size = sizeof(MirrorBlockJob),
+ .job_driver = {
+ .instance_size = sizeof(MirrorBlockJob),
+ },
.job_type = BLOCK_JOB_TYPE_COMMIT,
.start = mirror_run,
.complete = mirror_complete,