[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] quorum: validate vote threshold against num_children ev
From: |
Wen Congyang |
Subject: |
Re: [Qemu-devel] quorum: validate vote threshold against num_children even if read-pattern is fifo |
Date: |
Wed, 19 Aug 2015 10:53:04 +0800 |
User-agent: |
Mozilla/5.0 (X11; Linux x86_64; rv:38.0) Gecko/20100101 Thunderbird/38.1.0 |
Ping...
On 07/03/2015 02:45 PM, Wen Congyang wrote:
> We need to use threshold to check if too many write operation fails.
> If threshold is larger than num children, we always get write error
> event even if all write operations success.
>
> Signed-off-by: Wen Congyang <address@hidden>
> ---
> block/quorum.c | 12 ++++++------
> 1 file changed, 6 insertions(+), 6 deletions(-)
>
> diff --git a/block/quorum.c b/block/quorum.c
> index a7df17c..b0eead0 100644
> --- a/block/quorum.c
> +++ b/block/quorum.c
> @@ -894,6 +894,12 @@ static int quorum_open(BlockDriverState *bs, QDict
> *options, int flags,
> }
>
> s->threshold = qemu_opt_get_number(opts, QUORUM_OPT_VOTE_THRESHOLD, 0);
> + /* and validate it against s->num_children */
> + ret = quorum_valid_threshold(s->threshold, s->num_children, &local_err);
> + if (ret < 0) {
> + goto exit;
> + }
> +
> ret = parse_read_pattern(qemu_opt_get(opts, QUORUM_OPT_READ_PATTERN));
> if (ret < 0) {
> error_setg(&local_err, "Please set read-pattern as fifo or quorum");
> @@ -902,12 +908,6 @@ static int quorum_open(BlockDriverState *bs, QDict
> *options, int flags,
> s->read_pattern = ret;
>
> if (s->read_pattern == QUORUM_READ_PATTERN_QUORUM) {
> - /* and validate it against s->num_children */
> - ret = quorum_valid_threshold(s->threshold, s->num_children,
> &local_err);
> - if (ret < 0) {
> - goto exit;
> - }
> -
> /* is the driver in blkverify mode */
> if (qemu_opt_get_bool(opts, QUORUM_OPT_BLKVERIFY, false) &&
> s->num_children == 2 && s->threshold == 2) {
>
- Re: [Qemu-devel] quorum: validate vote threshold against num_children even if read-pattern is fifo,
Wen Congyang <=