diff options
author | Kevin Wolf <kwolf@redhat.com> | 2018-04-12 17:29:59 +0200 |
---|---|---|
committer | Kevin Wolf <kwolf@redhat.com> | 2018-05-23 14:30:49 +0200 |
commit | 33e9e9bd62d9ae00880d9e12ad8a5b7d2c00e8a5 (patch) | |
tree | eacaf4579f55de26f5a3ca8c45fa0faa60a19ba3 /block | |
parent | a81e0a825e3b89039a427bca037112f461b95fec (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')
-rw-r--r-- | block/backup.c | 4 | ||||
-rw-r--r-- | block/commit.c | 4 | ||||
-rw-r--r-- | block/mirror.c | 10 | ||||
-rw-r--r-- | block/stream.c | 4 |
4 files changed, 16 insertions, 6 deletions
diff --git a/block/backup.c b/block/backup.c index e14d99560d..9e672bbd5e 100644 --- a/block/backup.c +++ b/block/backup.c @@ -523,7 +523,9 @@ static void coroutine_fn backup_run(void *opaque) } static const BlockJobDriver backup_job_driver = { - .instance_size = sizeof(BackupBlockJob), + .job_driver = { + .instance_size = sizeof(BackupBlockJob), + }, .job_type = BLOCK_JOB_TYPE_BACKUP, .start = backup_run, .commit = backup_commit, diff --git a/block/commit.c b/block/commit.c index ba5df6aa0a..18cbb2f9c4 100644 --- a/block/commit.c +++ b/block/commit.c @@ -215,7 +215,9 @@ out: } static const BlockJobDriver commit_job_driver = { - .instance_size = sizeof(CommitBlockJob), + .job_driver = { + .instance_size = sizeof(CommitBlockJob), + }, .job_type = BLOCK_JOB_TYPE_COMMIT, .start = commit_run, }; 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, diff --git a/block/stream.c b/block/stream.c index df9660d2fc..f88fc75141 100644 --- a/block/stream.c +++ b/block/stream.c @@ -209,7 +209,9 @@ out: } static const BlockJobDriver stream_job_driver = { - .instance_size = sizeof(StreamBlockJob), + .job_driver = { + .instance_size = sizeof(StreamBlockJob), + }, .job_type = BLOCK_JOB_TYPE_STREAM, .start = stream_run, }; |