aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMarkus Armbruster <armbru@redhat.com>2014-06-27 19:24:13 +0200
committerKevin Wolf <kwolf@redhat.com>2014-06-27 20:00:00 +0200
commit518848a214ff67bbaea087552a709afde4f88fa5 (patch)
tree8eaf6b9bd3818d155574d265a6d23d786a57372b
parentd64c60a75fde0fc40f7c97acbc972dea59db0162 (diff)
downloadqemu-arm-518848a214ff67bbaea087552a709afde4f88fa5.tar.gz
blockjob: Fix recent BLOCK_JOB_READY regression
Commit bcada37 dropped the (up to now undocumented) members type, len, offset, speed, breaking tests/qemu-iotests/040 and 041. Restore and document them. This fixes 040, and partially fixes 041. Signed-off-by: Markus Armbruster <armbru@redhat.com> Tested-By: Benoit Canet <benoit@irqsave.net> Signed-off-by: Kevin Wolf <kwolf@redhat.com>
-rw-r--r--blockjob.c6
-rw-r--r--qapi/block-core.json15
2 files changed, 19 insertions, 2 deletions
diff --git a/blockjob.c b/blockjob.c
index a6db01e953..a32c1c8dd7 100644
--- a/blockjob.c
+++ b/blockjob.c
@@ -270,7 +270,11 @@ void block_job_event_completed(BlockJob *job, const char *msg)
void block_job_event_ready(BlockJob *job)
{
- qapi_event_send_block_job_ready(bdrv_get_device_name(job->bs), &error_abort);
+ qapi_event_send_block_job_ready(job->driver->job_type,
+ bdrv_get_device_name(job->bs),
+ job->len,
+ job->offset,
+ job->speed, &error_abort);
}
BlockErrorAction block_job_error_action(BlockJob *job, BlockDriverState *bs,
diff --git a/qapi/block-core.json b/qapi/block-core.json
index a46cdbe6aa..6f41f84c44 100644
--- a/qapi/block-core.json
+++ b/qapi/block-core.json
@@ -1558,12 +1558,25 @@
#
# Emitted when a block job is ready to complete
#
+# @type: job type
+#
# @device: device name
#
+# @len: maximum progress value
+#
+# @offset: current progress value. On success this is equal to len.
+# On failure this is less than len
+#
+# @speed: rate limit, bytes per second
+#
# Note: The "ready to complete" status is always reset by a @BLOCK_JOB_ERROR
# event
#
# Since: 1.3
##
{ 'event': 'BLOCK_JOB_READY',
- 'data': { 'device': 'str' } }
+ 'data': { 'type' : 'BlockJobType',
+ 'device': 'str',
+ 'len' : 'int',
+ 'offset': 'int',
+ 'speed' : 'int' } }