return job;
}
-void block_job_pause_all(void)
-{
- BlockJob *job = NULL;
- while ((job = block_job_next(job))) {
- AioContext *aio_context = blk_get_aio_context(job->blk);
-
- aio_context_acquire(aio_context);
- block_job_ref(job);
- block_job_pause(job);
- aio_context_release(aio_context);
- }
-}
-
void block_job_early_fail(BlockJob *job)
{
assert(job->status == BLOCK_JOB_STATUS_CREATED);
}
}
-void block_job_resume_all(void)
-{
- BlockJob *job, *next;
-
- QLIST_FOREACH_SAFE(job, &block_jobs, job_list, next) {
- AioContext *aio_context = blk_get_aio_context(job->blk);
-
- aio_context_acquire(aio_context);
- block_job_resume(job);
- block_job_unref(job);
- aio_context_release(aio_context);
- }
-}
-
/*
* Conditionally enter a block_job pending a call to fn() while
* under the block_job_lock critical section.
*/
void block_job_yield(BlockJob *job);
-/**
- * block_job_pause_all:
- *
- * Asynchronously pause all jobs.
- */
-void block_job_pause_all(void);
-
-/**
- * block_job_resume_all:
- *
- * Resume all block jobs. Must be paired with a preceding block_job_pause_all.
- */
-void block_job_resume_all(void);
-
/**
* block_job_early_fail:
* @bs: The block device.