qemu-devel
[Top][All Lists]
Advanced

[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



reply via email to

[Prev in Thread] Current Thread [Next in Thread]