Patchwork [2/3] block: Use file_ancestors_count() in qmp_query_block

login
register
mail settings
Submitter Benoit Canet
Date July 23, 2012, 2:56 p.m.
Message ID <1343055415-24767-3-git-send-email-benoit@irqsave.net>
Download mbox | patch
Permalink /patch/172701/
State New
Headers show

Comments

Benoit Canet - July 23, 2012, 2:56 p.m.
From: Benoît Canet <benoit@irqsave.net>

Use the dedicated counting function in qmp_query_block in order to
propagate the backing file count to HMP.

Signed-off-by: Benoit Canet <benoit@irqsave.net>
---
 block.c          |    2 ++
 qapi-schema.json |    9 ++++++---
 2 files changed, 8 insertions(+), 3 deletions(-)
Luiz Capitulino - July 24, 2012, 5:36 p.m.
On Mon, 23 Jul 2012 16:56:54 +0200
benoit.canet@gmail.com wrote:

> From: Benoît Canet <benoit@irqsave.net>
> 
> Use the dedicated counting function in qmp_query_block in order to
> propagate the backing file count to HMP.
> 
> Signed-off-by: Benoit Canet <benoit@irqsave.net>
> ---
>  block.c          |    2 ++
>  qapi-schema.json |    9 ++++++---
>  2 files changed, 8 insertions(+), 3 deletions(-)
> 
> diff --git a/block.c b/block.c
> index 1128356..23b4aab 100644
> --- a/block.c
> +++ b/block.c
> @@ -2448,6 +2448,8 @@ BlockInfoList *qmp_query_block(Error **errp)
>              if (bs->backing_file[0]) {
>                  info->value->inserted->has_backing_file = true;
>                  info->value->inserted->backing_file = g_strdup(bs->backing_file);
> +                info->value->inserted->file_ancestors_count =
> +                    bdrv_get_file_ancestors_count(bs);
>              }
>  
>              if (bs->io_limits_enabled) {
> diff --git a/qapi-schema.json b/qapi-schema.json
> index a92adb1..1ae0fc7 100644
> --- a/qapi-schema.json
> +++ b/qapi-schema.json
> @@ -398,6 +398,8 @@
>  #
>  # @backing_file: #optional the name of the backing file (for copy-on-write)
>  #
> +# @file_ancestors_count: #optional the count of ancestors backing files (for copy-on-write)
> +#
>  # @encrypted: true if the backing device is encrypted
>  #
>  # @bps: total throughput limit in bytes per second is specified
> @@ -418,9 +420,10 @@
>  ##
>  { 'type': 'BlockDeviceInfo',
>    'data': { 'file': 'str', 'ro': 'bool', 'drv': 'str',
> -            '*backing_file': 'str', 'encrypted': 'bool',
> -            'bps': 'int', 'bps_rd': 'int', 'bps_wr': 'int',
> -            'iops': 'int', 'iops_rd': 'int', 'iops_wr': 'int'} }
> +            '*backing_file': 'str', 'file_ancestors_count', 'int',

Syntax error, it should be 'file_ancestors_count: int'. And, wouldn't
be better to call it backing_file_ancestors_count?

Otherwise the qmp part looks good to me.

> +            'encrypted': 'bool', 'bps': 'int', 'bps_rd': 'int',
> +            'bps_wr': 'int', 'iops': 'int', 'iops_rd': 'int',
> +            'iops_wr': 'int'} }
>  
>  ##
>  # @BlockDeviceIoStatus:

Patch

diff --git a/block.c b/block.c
index 1128356..23b4aab 100644
--- a/block.c
+++ b/block.c
@@ -2448,6 +2448,8 @@  BlockInfoList *qmp_query_block(Error **errp)
             if (bs->backing_file[0]) {
                 info->value->inserted->has_backing_file = true;
                 info->value->inserted->backing_file = g_strdup(bs->backing_file);
+                info->value->inserted->file_ancestors_count =
+                    bdrv_get_file_ancestors_count(bs);
             }
 
             if (bs->io_limits_enabled) {
diff --git a/qapi-schema.json b/qapi-schema.json
index a92adb1..1ae0fc7 100644
--- a/qapi-schema.json
+++ b/qapi-schema.json
@@ -398,6 +398,8 @@ 
 #
 # @backing_file: #optional the name of the backing file (for copy-on-write)
 #
+# @file_ancestors_count: #optional the count of ancestors backing files (for copy-on-write)
+#
 # @encrypted: true if the backing device is encrypted
 #
 # @bps: total throughput limit in bytes per second is specified
@@ -418,9 +420,10 @@ 
 ##
 { 'type': 'BlockDeviceInfo',
   'data': { 'file': 'str', 'ro': 'bool', 'drv': 'str',
-            '*backing_file': 'str', 'encrypted': 'bool',
-            'bps': 'int', 'bps_rd': 'int', 'bps_wr': 'int',
-            'iops': 'int', 'iops_rd': 'int', 'iops_wr': 'int'} }
+            '*backing_file': 'str', 'file_ancestors_count', 'int',
+            'encrypted': 'bool', 'bps': 'int', 'bps_rd': 'int',
+            'bps_wr': 'int', 'iops': 'int', 'iops_rd': 'int',
+            'iops_wr': 'int'} }
 
 ##
 # @BlockDeviceIoStatus: