path: root/blockjob.c
diff options
authorAlberto Garcia <berto@igalia.com>2016-07-05 17:28:54 +0300
committerKevin Wolf <kwolf@redhat.com>2016-07-13 13:26:02 +0200
commitffb1f10cd1118393627e1bd2dad0a68152d2e539 (patch)
tree6bc5ce3d7c06bb0f80324b0b696050e908c8093c /blockjob.c
parent9df229c3caf6559a37c8760ef6e1485e66bbae41 (diff)
blockjob: Add block_job_get()
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>
Diffstat (limited to 'blockjob.c')
1 files changed, 13 insertions, 0 deletions
diff --git a/blockjob.c b/blockjob.c
index ce0e27c124..ca2291b5c5 100644
--- a/blockjob.c
+++ b/blockjob.c
@@ -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.