[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [PATCH 2/3] qmp: add block-job-cull command
From: |
John Snow |
Subject: |
[Qemu-devel] [PATCH 2/3] qmp: add block-job-cull command |
Date: |
Mon, 2 Oct 2017 23:15:55 -0400 |
For jobs that have finished (either completed or canceled), allow the
user to dismiss the job's status reports via block-job-cull.
Signed-off-by: John Snow <address@hidden>
---
block/trace-events | 1 +
blockdev.c | 14 ++++++++++++++
qapi/block-core.json | 21 +++++++++++++++++++++
3 files changed, 36 insertions(+)
diff --git a/block/trace-events b/block/trace-events
index 25dd5a3..cb64e91 100644
--- a/block/trace-events
+++ b/block/trace-events
@@ -46,6 +46,7 @@ qmp_block_job_cancel(void *job) "job %p"
qmp_block_job_pause(void *job) "job %p"
qmp_block_job_resume(void *job) "job %p"
qmp_block_job_complete(void *job) "job %p"
+qmp_block_job_cull(void *job) "job %p"
qmp_block_stream(void *bs, void *job) "bs %p job %p"
# block/file-win32.c
diff --git a/blockdev.c b/blockdev.c
index eeb4986..ee07bca 100644
--- a/blockdev.c
+++ b/blockdev.c
@@ -3766,6 +3766,20 @@ void qmp_block_job_complete(const char *device, Error
**errp)
aio_context_release(aio_context);
}
+void qmp_block_job_cull(const char *device, Error **errp)
+{
+ AioContext *aio_context;
+ BlockJob *job = find_block_job(device, &aio_context, errp);
+
+ if (!job) {
+ return;
+ }
+
+ trace_qmp_block_job_cull(job);
+ block_job_cull(&job, errp);
+ aio_context_release(aio_context);
+}
+
void qmp_change_backing_file(const char *device,
const char *image_node_name,
const char *backing_file,
diff --git a/qapi/block-core.json b/qapi/block-core.json
index a4f5e10..de322d1 100644
--- a/qapi/block-core.json
+++ b/qapi/block-core.json
@@ -2161,6 +2161,27 @@
{ 'command': 'block-job-complete', 'data': { 'device': 'str' } }
##
+# @block-job-cull:
+#
+# For jobs that have already completed, remove them from the block-job-query
+# list. This command only needs to be run for jobs which were started with the
+# manual-cull=true option.
+#
+# This command will refuse to operate on any job that has not yet reached
+# its terminal state. "cancel" or "complete" will still need to be used as
+# appropriate.
+#
+# @device: The job identifier. This used to be a device name (hence
+# the name of the parameter), but since QEMU 2.7 it can have
+# other values.
+#
+# Returns: Nothing on success
+#
+# Since: 2.11
+##
+{ 'command': 'block-job-cull', 'data': { 'device': 'str' } }
+
+##
# @BlockdevDiscardOptions:
#
# Determines how to handle discard requests.
--
2.9.5
[Qemu-devel] [PATCH 1/3] blockjob: add manual-cull property, John Snow, 2017/10/02
Re: [Qemu-devel] [PATCH 0/3] blockjobs: add explicit job culling, Vladimir Sementsov-Ogievskiy, 2017/10/03