[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-block] [PULL 05/10] block: Add node name to BLOCK_IO_ERROR event
From: |
Kevin Wolf |
Subject: |
[Qemu-block] [PULL 05/10] block: Add node name to BLOCK_IO_ERROR event |
Date: |
Fri, 7 Oct 2016 15:42:54 +0200 |
The event currently only contains the BlockBackend name. However, with
anonymous BlockBackends, this is always the empty string. Add the node
name so that the user can still see which block device caused the event.
Signed-off-by: Kevin Wolf <address@hidden>
Reviewed-by: Max Reitz <address@hidden>
---
block/block-backend.c | 5 +++--
docs/qmp-events.txt | 8 +++++++-
qapi/block-core.json | 10 ++++++++--
3 files changed, 18 insertions(+), 5 deletions(-)
diff --git a/block/block-backend.c b/block/block-backend.c
index 11b0d8b..27ddacb 100644
--- a/block/block-backend.c
+++ b/block/block-backend.c
@@ -1197,8 +1197,9 @@ static void send_qmp_error_event(BlockBackend *blk,
IoOperationType optype;
optype = is_read ? IO_OPERATION_TYPE_READ : IO_OPERATION_TYPE_WRITE;
- qapi_event_send_block_io_error(blk_name(blk), optype, action,
- blk_iostatus_is_enabled(blk),
+ qapi_event_send_block_io_error(blk_name(blk),
+ bdrv_get_node_name(blk_bs(blk)), optype,
+ action, blk_iostatus_is_enabled(blk),
error == ENOSPC, strerror(error),
&error_abort);
}
diff --git a/docs/qmp-events.txt b/docs/qmp-events.txt
index 7967ec4..62a9f9c 100644
--- a/docs/qmp-events.txt
+++ b/docs/qmp-events.txt
@@ -65,7 +65,12 @@ Emitted when a disk I/O error occurs.
Data:
-- "device": device name (json-string)
+- "device": device name. This is always present for compatibility
+ reasons, but it can be empty ("") if the image does not
+ have a device name associated. (json-string)
+- "node-name": node name. Note that errors may be reported for the root node
+ that is directly attached to a guest device rather than for the
+ node where the error occurred. (json-string)
- "operation": I/O operation (json-string, "read" or "write")
- "action": action that has been taken, it's one of the following
(json-string):
"ignore": error has been ignored
@@ -76,6 +81,7 @@ Example:
{ "event": "BLOCK_IO_ERROR",
"data": { "device": "ide0-hd1",
+ "node-name": "#block212",
"operation": "write",
"action": "stop" },
"timestamp": { "seconds": 1265044230, "microseconds": 450486 } }
diff --git a/qapi/block-core.json b/qapi/block-core.json
index 9d797b8..3d3c0be 100644
--- a/qapi/block-core.json
+++ b/qapi/block-core.json
@@ -2545,7 +2545,13 @@
#
# Emitted when a disk I/O error occurs
#
-# @device: device name
+# @device: device name. This is always present for compatibility
+# reasons, but it can be empty ("") if the image does not
+# have a device name associated.
+#
+# @node-name: node name. Note that errors may be reported for the root node
+# that is directly attached to a guest device rather than for the
+# node where the error occurred. (Since: 2.8)
#
# @operation: I/O operation
#
@@ -2566,7 +2572,7 @@
# Since: 0.13.0
##
{ 'event': 'BLOCK_IO_ERROR',
- 'data': { 'device': 'str', 'operation': 'IoOperationType',
+ 'data': { 'device': 'str', 'node-name': 'str', 'operation':
'IoOperationType',
'action': 'BlockErrorAction', '*nospace': 'bool',
'reason': 'str' } }
--
1.8.3.1
- [Qemu-block] [PULL 00/10] Block layer patches, Kevin Wolf, 2016/10/07
- [Qemu-block] [PULL 04/10] block: Add bdrv_runtime_opts to query-command-line-options, Kevin Wolf, 2016/10/07
- [Qemu-block] [PULL 01/10] block: use bdrv_add_before_write_notifier, Kevin Wolf, 2016/10/07
- [Qemu-block] [PULL 02/10] async: add aio_bh_schedule_oneshot, Kevin Wolf, 2016/10/07
- [Qemu-block] [PULL 03/10] block: use aio_bh_schedule_oneshot, Kevin Wolf, 2016/10/07
- [Qemu-block] [PULL 05/10] block: Add node name to BLOCK_IO_ERROR event,
Kevin Wolf <=
- [Qemu-block] [PULL 07/10] block: Add qdev ID to DEVICE_TRAY_MOVED, Kevin Wolf, 2016/10/07
- [Qemu-block] [PULL 06/10] block-backend: Remember if attached device is non-qdev, Kevin Wolf, 2016/10/07
- [Qemu-block] [PULL 09/10] module: Don't load the same module if requested multiple times, Kevin Wolf, 2016/10/07
- [Qemu-block] [PULL 08/10] scripts: Allow block module to not define BlockDriver, Kevin Wolf, 2016/10/07
- [Qemu-block] [PULL 10/10] dmg: Move libbz2 code to dmg-bz2.so, Kevin Wolf, 2016/10/07
- Re: [Qemu-block] [Qemu-devel] [PULL 00/10] Block layer patches, Peter Maydell, 2016/10/10