[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [PATCH 3/3] block: add 'node-name' field to BLOCK_IMAGE
From: |
Markus Armbruster |
Subject: |
Re: [Qemu-devel] [PATCH 3/3] block: add 'node-name' field to BLOCK_IMAGE_CORRUPTED |
Date: |
Mon, 23 Mar 2015 10:20:31 +0100 |
User-agent: |
Gnus/5.13 (Gnus v5.13) Emacs/24.3 (gnu/linux) |
Alberto Garcia <address@hidden> writes:
> Since this event can occur in nodes that cannot have a device name
> associated, include also a field with the node name.
>
> Signed-off-by: Alberto Garcia <address@hidden>
> ---
> block/qcow2.c | 8 ++++++--
> docs/qmp/qmp-events.txt | 16 +++++++++-------
> qapi/block-core.json | 13 ++++++++-----
> 3 files changed, 23 insertions(+), 14 deletions(-)
>
> diff --git a/block/qcow2.c b/block/qcow2.c
> index 168006b..e7c78f1 100644
> --- a/block/qcow2.c
> +++ b/block/qcow2.c
> @@ -2809,6 +2809,7 @@ void qcow2_signal_corruption(BlockDriverState *bs, bool
> fatal, int64_t offset,
> int64_t size, const char *message_format, ...)
> {
> BDRVQcowState *s = bs->opaque;
> + const char *node_name;
> char *message;
> va_list ap;
>
> @@ -2832,8 +2833,11 @@ void qcow2_signal_corruption(BlockDriverState *bs,
> bool fatal, int64_t offset,
> "corruption events will be suppressed\n", message);
> }
>
> - qapi_event_send_block_image_corrupted(bdrv_get_device_name(bs), message,
> - offset >= 0, offset, size >= 0,
> size,
> + node_name = bdrv_get_node_name(bs);
> + qapi_event_send_block_image_corrupted(bdrv_get_device_name(bs),
> + *node_name != '\0', node_name,
> + message, offset >= 0, offset,
> + size >= 0, size,
> fatal, &error_abort);
> g_free(message);
>
> diff --git a/docs/qmp/qmp-events.txt b/docs/qmp/qmp-events.txt
> index d759d19..ed1d0a5 100644
> --- a/docs/qmp/qmp-events.txt
> +++ b/docs/qmp/qmp-events.txt
> @@ -35,17 +35,19 @@ Emitted when a disk image is being marked corrupt.
>
> Data:
>
> -- "device": Device name (json-string)
> -- "msg": Informative message (e.g., reason for the corruption)
> (json-string)
> -- "offset": If the corruption resulted from an image access, this is the
> access
> - offset into the image (json-int)
> -- "size": If the corruption resulted from an image access, this is the
> access
> - size (json-int)
> +- "device": Device name (json-string)
> +- "node-name": Node name, if it's present (json-string)
By convention, we mark optional members like this:
- "node-name": Node name (json-string, optional)
Ignorant question: can "device" be ""? If yes, we should document what
that means, possibly in a separate patch.
> +- "msg": Informative message (e.g., reason for the corruption)
> + (json-string)
> +- "offset": If the corruption resulted from an image access, this
> + is the access offset into the image (json-int)
> +- "size": If the corruption resulted from an image access, this
> + is the access size (json-int)
>
> Example:
>
> { "event": "BLOCK_IMAGE_CORRUPTED",
> - "data": { "device": "ide0-hd0",
> + "data": { "device": "ide0-hd0", "node-name": "node0",
> "msg": "Prevented active L1 table overwrite", "offset": 196608,
> "size": 65536 },
> "timestamp": { "seconds": 1378126126, "microseconds": 966463 } }
> diff --git a/qapi/block-core.json b/qapi/block-core.json
> index f525b04..2a40b73 100644
> --- a/qapi/block-core.json
> +++ b/qapi/block-core.json
> @@ -1752,6 +1752,8 @@
> #
> # @device: device name
> #
> +# @node-name: #optional node name (Since: 2.4)
> +#
> # @msg: informative message for human consumption, such as the kind of
> # corruption being detected. It should not be parsed by machine as it
> is
> # not guaranteed to be stable
> @@ -1769,11 +1771,12 @@
> # Since: 1.7
> ##
> { 'event': 'BLOCK_IMAGE_CORRUPTED',
> - 'data': { 'device' : 'str',
> - 'msg' : 'str',
> - '*offset': 'int',
> - '*size' : 'int',
> - 'fatal' : 'bool' } }
> + 'data': { 'device' : 'str',
> + '*node-name' : 'str',
> + 'msg' : 'str',
> + '*offset' : 'int',
> + '*size' : 'int',
> + 'fatal' : 'bool' } }
>
> ##
> # @BLOCK_IO_ERROR