qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Qemu-devel] [PATCH 4/4] qmp: Add optional switch "query-nodes" in q


From: Max Reitz
Subject: Re: [Qemu-devel] [PATCH 4/4] qmp: Add optional switch "query-nodes" in query-blockstats
Date: Tue, 04 Nov 2014 09:49:17 +0100
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:31.0) Gecko/20100101 Thunderbird/31.2.0

On 2014-10-31 at 04:20, Fam Zheng wrote:
On Wed, 10/29 10:11, Max Reitz wrote:
On 2014-10-29 at 06:04, Fam Zheng wrote:
This bool option will allow query all the node names. It iterates all
the BDSes that are assigned a name, also in this case don't query up the
backing chain.

Signed-off-by: Fam Zheng <address@hidden>
---
  block/qapi.c         | 20 +++++++++++++-------
  hmp.c                |  2 +-
  qapi/block-core.json |  4 +++-
  qmp-commands.hx      |  2 +-
  4 files changed, 18 insertions(+), 10 deletions(-)

diff --git a/block/qapi.c b/block/qapi.c
index a4d1a20..e26033e 100644
--- a/block/qapi.c
+++ b/block/qapi.c
@@ -322,7 +322,8 @@ static void bdrv_query_info(BlockBackend *blk, BlockInfo 
**p_info,
      qapi_free_BlockInfo(info);
  }
-static BlockStats *bdrv_query_stats(const BlockDriverState *bs)
+static BlockStats *bdrv_query_stats(const BlockDriverState *bs,
+                                    bool query_backing)
  {
      BlockStats *s;
@@ -352,12 +353,12 @@ static BlockStats *bdrv_query_stats(const 
BlockDriverState *bs)
      if (bs->file) {
          s->has_parent = true;
-        s->parent = bdrv_query_stats(bs->file);
+        s->parent = bdrv_query_stats(bs->file, query_backing);
      }
-    if (bs->backing_hd) {
+    if (query_backing && bs->backing_hd) {
          s->has_backing = true;
-        s->backing = bdrv_query_stats(bs->backing_hd);
+        s->backing = bdrv_query_stats(bs->backing_hd, query_backing);
      }
Is there a specific reason why you're not querying the backing chain but
still recurse to bs->file?
Unlike its backing, there can be some information in ->file which is
interesting to the node itself, because it is ->file carries out the actual
read/write on the image. Makes sense?

Ah, I forgot to answer. Well, ->backing carries out reads, too. I thought you omitted it because you could give it a node-name as well and therefore you'd have some BDS appear twice; but the same applies to ->file, that's why I asked.

Max



reply via email to

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