qemu-devel
[Top][All Lists]
Advanced

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

[Qemu-devel] [PATCH 1/2] block: Introduce a BlockDriver field to flag dr


From: Benoît Canet
Subject: [Qemu-devel] [PATCH 1/2] block: Introduce a BlockDriver field to flag drivers supporting multiple children
Date: Mon, 15 Sep 2014 16:21:19 +0200

The recursive op blocker patch to come will take an optional base argument
which will not have any meaning when an intermediary BDS driver of the graph
support multiple children.

Flag such drivers to be able to handle this case.

CC: Jeff Cody <address@hidden>
Signed-off-by: Benoît Canet <address@hidden>
---
 block/blkverify.c         | 1 +
 block/quorum.c            | 1 +
 block/vmdk.c              | 1 +
 include/block/block_int.h | 6 ++++++
 4 files changed, 9 insertions(+)

diff --git a/block/blkverify.c b/block/blkverify.c
index 163064c..13f8359 100644
--- a/block/blkverify.c
+++ b/block/blkverify.c
@@ -368,6 +368,7 @@ static BlockDriver bdrv_blkverify = {
     .bdrv_detach_aio_context          = blkverify_detach_aio_context,
 
     .is_filter                        = true,
+    .supports_multiple_children       = true,
     .bdrv_recurse_is_first_non_filter = blkverify_recurse_is_first_non_filter,
 };
 
diff --git a/block/quorum.c b/block/quorum.c
index 093382e..a4d11eb 100644
--- a/block/quorum.c
+++ b/block/quorum.c
@@ -1087,6 +1087,7 @@ static BlockDriver bdrv_quorum = {
     .bdrv_attach_aio_context            = quorum_attach_aio_context,
 
     .is_filter                          = true,
+    .supports_multiple_children         = true,
     .bdrv_recurse_is_first_non_filter   = quorum_recurse_is_first_non_filter,
 };
 
diff --git a/block/vmdk.c b/block/vmdk.c
index a1cb911..933a57d 100644
--- a/block/vmdk.c
+++ b/block/vmdk.c
@@ -2244,6 +2244,7 @@ static BlockDriver bdrv_vmdk = {
     .bdrv_attach_aio_context      = vmdk_attach_aio_context,
 
     .supports_backing             = true,
+    .supports_multiple_children   = true,
     .create_opts                  = &vmdk_create_opts,
 };
 
diff --git a/include/block/block_int.h b/include/block/block_int.h
index 8a61215..b653e48 100644
--- a/include/block/block_int.h
+++ b/include/block/block_int.h
@@ -104,6 +104,12 @@ struct BlockDriver {
     /* Set if a driver can support backing files */
     bool supports_backing;
 
+    /* Set to true if the BlockDriver supports multiple children.
+     * (quorum, blkverify, vmdk)
+     * This field being true will disable some block layer operations.
+     */
+    bool supports_multiple_children;
+
     /* For handling image reopen for split or non-split files */
     int (*bdrv_reopen_prepare)(BDRVReopenState *reopen_state,
                                BlockReopenQueue *queue, Error **errp);
-- 
2.1.0




reply via email to

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