[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [PATCH V17 02/12] quorum: Create BDRVQuorumState and Bl
From: |
Max Reitz |
Subject: |
Re: [Qemu-devel] [PATCH V17 02/12] quorum: Create BDRVQuorumState and BlkDriver and do init. |
Date: |
Sat, 15 Feb 2014 02:22:41 +0100 |
User-agent: |
Mozilla/5.0 (X11; Linux x86_64; rv:24.0) Gecko/20100101 Thunderbird/24.3.0 |
On 12.02.2014 23:06, Benoît Canet wrote:
From: Benoît Canet <address@hidden>
Create the structure holding the quorum settings and write the minimal block
driver instanciation boilerplate.
Signed-off-by: Benoit Canet <address@hidden>
Reviewed-by: Max Reitz <address@hidden>
---
block/quorum.c | 31 +++++++++++++++++++++++++++++++
1 file changed, 31 insertions(+)
diff --git a/block/quorum.c b/block/quorum.c
index 950f5cc..36c5bb8 100644
--- a/block/quorum.c
+++ b/block/quorum.c
@@ -15,6 +15,23 @@
#include "block/block_int.h"
+/* the following structure holds the state of one quorum instance */
+typedef struct BDRVQuorumState {
+ BlockDriverState **bs; /* children BlockDriverStates */
+ int num_children; /* children count */
+ int threshold; /* if less than threshold children reads gave the
+ * same result a quorum error occurs.
+ */
+ bool is_blkverify; /* true if the driver is in blkverify mode
+ * Writes are mirrored on two children devices.
+ * On reads the two children devices contents are
Probably better with apostrophe: "children devices' contents".
+ * compared and when a difference is spotted its
Since we're not rooting for an error, I'd prefer an "if" instead of "when".
+ * location is printed and the code abort.
"aborts"
Reviewed-by: Max Reitz <address@hidden>
+ * It is useful to debug other block drivers by
+ * comparing them with a reference one.
+ */
+} BDRVQuorumState;
+
typedef struct QuorumAIOCB QuorumAIOCB;
/* Quorum will create one instance of the following structure per operation it
@@ -51,3 +68,17 @@ struct QuorumAIOCB {
bool is_read;
int vote_ret;
};
+
+static BlockDriver bdrv_quorum = {
+ .format_name = "quorum",
+ .protocol_name = "quorum",
+
+ .instance_size = sizeof(BDRVQuorumState),
+};
+
+static void bdrv_quorum_init(void)
+{
+ bdrv_register(&bdrv_quorum);
+}
+
+block_init(bdrv_quorum_init);
- [Qemu-devel] [PATCH V17 00/12] quorum block filter, Benoît Canet, 2014/02/12
- [Qemu-devel] [PATCH V17 02/12] quorum: Create BDRVQuorumState and BlkDriver and do init., Benoît Canet, 2014/02/12
- Re: [Qemu-devel] [PATCH V17 02/12] quorum: Create BDRVQuorumState and BlkDriver and do init.,
Max Reitz <=
- [Qemu-devel] [PATCH V17 03/12] quorum: Add quorum_aio_writev and its dependencies., Benoît Canet, 2014/02/12
- [Qemu-devel] [PATCH V17 01/12] quorum: Create quorum.c, add QuorumChildRequest and QuorumAIOCB., Benoît Canet, 2014/02/12
- [Qemu-devel] [PATCH V17 05/12] quorum: Add quorum_aio_readv., Benoît Canet, 2014/02/12
- [Qemu-devel] [PATCH V17 08/12] quorum: Add quorum_invalidate_cache()., Benoît Canet, 2014/02/12
- [Qemu-devel] [PATCH V17 04/12] blkverify: Extract qemu_iovec_clone() and qemu_iovec_compare() from blkverify., Benoît Canet, 2014/02/12