[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [PULL 03/32] blockjob: Add block_job_get()
From: |
Kevin Wolf |
Subject: |
[Qemu-devel] [PULL 03/32] blockjob: Add block_job_get() |
Date: |
Fri, 8 Jul 2016 19:21:15 +0200 |
From: Alberto Garcia <address@hidden>
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 <address@hidden>
Reviewed-by: Max Reitz <address@hidden>
Reviewed-by: Kevin Wolf <address@hidden>
Signed-off-by: Kevin Wolf <address@hidden>
---
blockjob.c | 13 +++++++++++++
include/block/blockjob.h | 10 ++++++++++
2 files changed, 23 insertions(+)
diff --git a/blockjob.c b/blockjob.c
index ce0e27c..ca2291b 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.
diff --git a/include/block/blockjob.h b/include/block/blockjob.h
index 5181514..0fe1540 100644
--- a/include/block/blockjob.h
+++ b/include/block/blockjob.h
@@ -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.
* @bs: The block
--
1.8.3.1
- [Qemu-devel] [PULL 00/32] Block layer patches, Kevin Wolf, 2016/07/08
- [Qemu-devel] [PULL 01/32] stream: Fix prototype of stream_start(), Kevin Wolf, 2016/07/08
- [Qemu-devel] [PULL 12/32] osdep: Introduce qemu_dup, Kevin Wolf, 2016/07/08
- [Qemu-devel] [PULL 04/32] block: Use block_job_get() in find_block_job(), Kevin Wolf, 2016/07/08
- [Qemu-devel] [PULL 03/32] blockjob: Add block_job_get(),
Kevin Wolf <=
- [Qemu-devel] [PULL 14/32] coroutine: use QSIMPLEQ instead of QTAILQ, Kevin Wolf, 2016/07/08
- [Qemu-devel] [PULL 06/32] mirror: Add 'job-id' parameter to 'blockdev-mirror' and 'drive-mirror', Kevin Wolf, 2016/07/08
- [Qemu-devel] [PULL 15/32] test-coroutine: prepare for the next patch, Kevin Wolf, 2016/07/08
- [Qemu-devel] [PULL 02/32] blockjob: Update description of the 'id' field, Kevin Wolf, 2016/07/08
- [Qemu-devel] [PULL 13/32] raw-posix: Use qemu_dup, Kevin Wolf, 2016/07/08
- [Qemu-devel] [PULL 05/32] blockjob: Add 'job_id' parameter to block_job_create(), Kevin Wolf, 2016/07/08
- [Qemu-devel] [PULL 07/32] backup: Add 'job-id' parameter to 'blockdev-backup' and 'drive-backup', Kevin Wolf, 2016/07/08
- [Qemu-devel] [PULL 17/32] block/qdev: Allow node name for drive properties, Kevin Wolf, 2016/07/08
- [Qemu-devel] [PULL 19/32] commit: Fix use of error handling policy, Kevin Wolf, 2016/07/08