aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--block/block-backend.c5
-rw-r--r--docs/qmp-events.txt8
-rw-r--r--qapi/block-core.json10
3 files changed, 18 insertions, 5 deletions
diff --git a/block/block-backend.c b/block/block-backend.c
index 11b0d8b4c1..27ddacb3cf 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 7967ec4c5a..62a9f9ca66 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 9d797b8fe0..3d3c0be75d 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' } }