Message ID | 1380717564-11098-3-git-send-email-benoit@irqsave.net |
---|---|
State | New |
Headers | show |
On 2013-10-02 14:39, Benoît Canet wrote: > Signed-off-by: Benoit Canet <benoit@irqsave.net> > --- > block/quorum.c | 25 +++++++++++++++++++++++++ > 1 file changed, 25 insertions(+) > > diff --git a/block/quorum.c b/block/quorum.c > index 76a1fbb..9557e61 100644 > --- a/block/quorum.c > +++ b/block/quorum.c > @@ -15,6 +15,16 @@ > > #include "block/block_int.h" > > +/* the following structure hold the state of one quorum instance */ s/hold/holds/ > +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 occur. s/occur/occurs/ Max > + */ > + 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 read/write > @@ -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);
diff --git a/block/quorum.c b/block/quorum.c index 76a1fbb..9557e61 100644 --- a/block/quorum.c +++ b/block/quorum.c @@ -15,6 +15,16 @@ #include "block/block_int.h" +/* the following structure hold 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 occur. + */ + 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 read/write @@ -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);
Signed-off-by: Benoit Canet <benoit@irqsave.net> --- block/quorum.c | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+)