[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [PATCH V13 02/13] quorum: Create BDRVQuorumState and BlkDri
From: |
Benoît Canet |
Subject: |
[Qemu-devel] [PATCH V13 02/13] quorum: Create BDRVQuorumState and BlkDriver and do init. |
Date: |
Mon, 3 Feb 2014 17:02:21 +0100 |
From: Benoît Canet <address@hidden>
Signed-off-by: Benoit Canet <address@hidden>
Reviewed-by: Max Reitz <address@hidden>
---
block/quorum.c | 25 +++++++++++++++++++++++++
1 file changed, 25 insertions(+)
diff --git a/block/quorum.c b/block/quorum.c
index 17695d6..157efdf 100644
--- a/block/quorum.c
+++ b/block/quorum.c
@@ -15,6 +15,16 @@
#include "block/block_int.h"
+/* the following structure holds the state of one quorum instance */
+typedef struct {
+ BlockDriverState **bs; /* children BlockDriverStates */
+ int total; /* 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 */
+} BDRVQuorumState;
+
typedef struct QuorumAIOCB QuorumAIOCB;
/* Quorum will create one instance of the following structure per operation it
@@ -37,6 +47,7 @@ typedef struct QuorumSingleAIOCB {
*/
struct QuorumAIOCB {
BlockDriverAIOCB common;
+ BDRVQuorumState *bqs;
/* Request metadata */
uint64_t sector_num;
@@ -52,3 +63,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);
--
1.8.3.2
- [Qemu-devel] [PATCH V13 00/13] Quorum block filter, Benoît Canet, 2014/02/03
- [Qemu-devel] [PATCH V13 01/13] quorum: Create quorum.c, add QuorumSingleAIOCB and QuorumAIOCB., Benoît Canet, 2014/02/03
- [Qemu-devel] [PATCH V13 13/13] quorum: Add unit test., Benoît Canet, 2014/02/03
- [Qemu-devel] [PATCH V13 02/13] quorum: Create BDRVQuorumState and BlkDriver and do init.,
Benoît Canet <=
- [Qemu-devel] [PATCH V13 04/13] blkverify: Extract qemu_iovec_clone() and qemu_iovec_compare() from blkverify., Benoît Canet, 2014/02/03
- [Qemu-devel] [PATCH V13 10/13] quorum: Add quorum_co_flush()., Benoît Canet, 2014/02/03
- [Qemu-devel] [PATCH V13 12/13] quorum: Add quorum_open() and quorum_close()., Benoît Canet, 2014/02/03
- [Qemu-devel] [PATCH V13 05/13] quorum: Add quorum_aio_readv., Benoît Canet, 2014/02/03
- [Qemu-devel] [PATCH V13 08/13] quorum: Add quorum_invalidate_cache()., Benoît Canet, 2014/02/03
- [Qemu-devel] [PATCH V13 07/13] quorum: Add quorum_getlength()., Benoît Canet, 2014/02/03
- [Qemu-devel] [PATCH V13 09/13] quorum: Add quorum_co_get_block_status., Benoît Canet, 2014/02/03
- [Qemu-devel] [PATCH V13 11/13] quorum: Implement recursive .bdrv_recurse_is_first_non_filter in quorum., Benoît Canet, 2014/02/03
- [Qemu-devel] [PATCH V13 06/13] quorum: Add quorum mechanism., Benoît Canet, 2014/02/03
- [Qemu-devel] [PATCH V13 03/13] quorum: Add quorum_aio_writev and its dependencies., Benoît Canet, 2014/02/03