Skip to content

Commit

Permalink
blockjob: Add block_job_get()
Browse files Browse the repository at this point in the history
Currently the way to look for a specific block job is to iterate the
list manually using block_job_next().

Since we want to be able to identify a job primarily by its ID it
makes sense to have a function that does just that.

Signed-off-by: Alberto Garcia <berto@igalia.com>
Reviewed-by: Max Reitz <mreitz@redhat.com>
Reviewed-by: Kevin Wolf <kwolf@redhat.com>
Signed-off-by: Kevin Wolf <kwolf@redhat.com>
  • Loading branch information
bertogg authored and kevmw committed Jul 13, 2016
1 parent 9df229c commit ffb1f10
Show file tree
Hide file tree
Showing 2 changed files with 23 additions and 0 deletions.
13 changes: 13 additions & 0 deletions blockjob.c
Expand Up @@ -60,6 +60,19 @@ BlockJob *block_job_next(BlockJob *job)
return QLIST_NEXT(job, job_list);
}

BlockJob *block_job_get(const char *id)
{
BlockJob *job;

QLIST_FOREACH(job, &block_jobs, job_list) {
if (!strcmp(id, job->id)) {
return job;
}
}

return NULL;
}

/* Normally the job runs in its BlockBackend's AioContext. The exception is
* block_job_defer_to_main_loop() where it runs in the QEMU main loop. Code
* that supports both cases uses this helper function.
Expand Down
10 changes: 10 additions & 0 deletions include/block/blockjob.h
Expand Up @@ -211,6 +211,16 @@ struct BlockJob {
*/
BlockJob *block_job_next(BlockJob *job);

/**
* block_job_get:
* @id: The id of the block job.
*
* Get the block job identified by @id (which must not be %NULL).
*
* Returns the requested job, or %NULL if it doesn't exist.
*/
BlockJob *block_job_get(const char *id);

/**
* block_job_create:
* @job_type: The class object for the newly-created job.
Expand Down

0 comments on commit ffb1f10

Please sign in to comment.