]> xenbits.xensource.com Git - qemu-xen.git/commitdiff
block: Add bdrv_next_node
authorFam Zheng <famz@redhat.com>
Fri, 31 Oct 2014 03:32:54 +0000 (11:32 +0800)
committerKevin Wolf <kwolf@redhat.com>
Wed, 10 Dec 2014 09:25:29 +0000 (10:25 +0100)
Similar to bdrv_next, this traverses through graph_bdrv_states. Will be
useful to enumerate all the named nodes.

Signed-off-by: Fam Zheng <famz@redhat.com>
Reviewed-by: Max Reitz <mreitz@redhat.com>
Reviewed-by: Eric Blake <eblake@redhat.com>
Signed-off-by: Max Reitz <mreitz@redhat.com>
Signed-off-by: Kevin Wolf <kwolf@redhat.com>
block.c
include/block/block.h

diff --git a/block.c b/block.c
index a612594db50400727197c9171e18bb8640987f8a..e8a0342ccedc7951838a13b41b4a810dba463bce 100644 (file)
--- a/block.c
+++ b/block.c
@@ -3801,6 +3801,14 @@ bool bdrv_chain_contains(BlockDriverState *top, BlockDriverState *base)
     return top != NULL;
 }
 
+BlockDriverState *bdrv_next_node(BlockDriverState *bs)
+{
+    if (!bs) {
+        return QTAILQ_FIRST(&graph_bdrv_states);
+    }
+    return QTAILQ_NEXT(bs, node_list);
+}
+
 BlockDriverState *bdrv_next(BlockDriverState *bs)
 {
     if (!bs) {
index 5450610bc117ff9c0ad6f84dbe350c40cee16879..c3a68d86a18192b8650e87d4afd0070109a0f0c7 100644 (file)
@@ -374,6 +374,7 @@ BlockDriverState *bdrv_lookup_bs(const char *device,
                                  const char *node_name,
                                  Error **errp);
 bool bdrv_chain_contains(BlockDriverState *top, BlockDriverState *base);
+BlockDriverState *bdrv_next_node(BlockDriverState *bs);
 BlockDriverState *bdrv_next(BlockDriverState *bs);
 int bdrv_is_encrypted(BlockDriverState *bs);
 int bdrv_key_required(BlockDriverState *bs);