block: Add node name to BLOCK_IO_ERROR event
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 <kwolf@redhat.com> Reviewed-by: Max Reitz <mreitz@redhat.com>
This commit is contained in:
parent
c5f3014b82
commit
2bf7e10f78
@ -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);
|
||||
}
|
||||
|
@ -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 } }
|
||||
|
@ -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' } }
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user