diff options
author | Kevin Wolf <kwolf@redhat.com> | 2018-05-14 14:51:21 +0200 |
---|---|---|
committer | Kevin Wolf <kwolf@redhat.com> | 2018-05-23 14:30:51 +0200 |
commit | 9f6bb4c004a6458227b9eec6aff3f79afe159699 (patch) | |
tree | 20d8338274771233a88e647e409e63b1bd537fef /blockjob.c | |
parent | 456273b02474780537e2bb52a72213f63bb5227a (diff) | |
download | qemu-9f6bb4c004a6458227b9eec6aff3f79afe159699.zip qemu-9f6bb4c004a6458227b9eec6aff3f79afe159699.tar.gz qemu-9f6bb4c004a6458227b9eec6aff3f79afe159699.tar.bz2 |
blockjob: Remove BlockJob.driver
BlockJob.driver is redundant with Job.driver and only used in very few
places any more. Remove it.
Signed-off-by: Kevin Wolf <kwolf@redhat.com>
Diffstat (limited to 'blockjob.c')
-rw-r--r-- | blockjob.c | 17 |
1 files changed, 10 insertions, 7 deletions
@@ -103,10 +103,12 @@ static void block_job_attached_aio_context(AioContext *new_context, void *opaque) { BlockJob *job = opaque; + const JobDriver *drv = job->job.driver; + BlockJobDriver *bjdrv = container_of(drv, BlockJobDriver, job_driver); job->job.aio_context = new_context; - if (job->driver->attached_aio_context) { - job->driver->attached_aio_context(job, new_context); + if (bjdrv->attached_aio_context) { + bjdrv->attached_aio_context(job, new_context); } job_resume(&job->job); @@ -115,10 +117,12 @@ static void block_job_attached_aio_context(AioContext *new_context, void block_job_drain(Job *job) { BlockJob *bjob = container_of(job, BlockJob, job); + const JobDriver *drv = job->driver; + BlockJobDriver *bjdrv = container_of(drv, BlockJobDriver, job_driver); blk_drain(bjob->blk); - if (bjob->driver->drain) { - bjob->driver->drain(bjob); + if (bjdrv->drain) { + bjdrv->drain(bjob); } } @@ -201,7 +205,7 @@ bool block_job_is_internal(BlockJob *job) const BlockJobDriver *block_job_driver(BlockJob *job) { - return job->driver; + return container_of(job->job.driver, BlockJobDriver, job_driver); } /* Assumes the job_mutex is held */ @@ -386,8 +390,7 @@ void *block_job_create(const char *job_id, const BlockJobDriver *driver, assert(job->job.driver->user_resume == &block_job_user_resume); assert(job->job.driver->drain == &block_job_drain); - job->driver = driver; - job->blk = blk; + job->blk = blk; job->finalize_cancelled_notifier.notify = block_job_event_cancelled; job->finalize_completed_notifier.notify = block_job_event_completed; |