qemu-devel
[Top][All Lists]
Advanced

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

Re: [Qemu-devel] [PATCH 1/1] quorum: change vote rules for 64 bits hash


From: Changlong Xie
Subject: Re: [Qemu-devel] [PATCH 1/1] quorum: change vote rules for 64 bits hash
Date: Tue, 16 Feb 2016 09:37:22 +0800
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:31.0) Gecko/20100101 Thunderbird/31.7.0

On 02/16/2016 01:10 AM, Eric Blake wrote:
On 02/15/2016 02:52 AM, Changlong Xie wrote:
Before:
1) vote_count > max: winner = candidate, update max
2) vote_count <= max: do nothing
Current:
1) vote_count > max: winner = candidate, update max
2) vote_count = max: compare the value of winner with
candidate, if candidate->value.l == 0, winner = candidate,
else do nothing
3) vote_count < max: do nothing

This says what you did, but not why.  Can you demonstrate a scenario
that is broken without the patch, as part of your commit message?

Surely, will do in next version.



Signed-off-by: Wen Congyang <address@hidden>
Signed-off-by: Changlong Xie <address@hidden>
---
  block/quorum.c | 14 ++++++++++----
  1 file changed, 10 insertions(+), 4 deletions(-)

diff --git a/block/quorum.c b/block/quorum.c
index a5ae4b8..e431ff4 100644
--- a/block/quorum.c
+++ b/block/quorum.c
@@ -446,7 +446,7 @@ static int quorum_compute_hash(QuorumAIOCB *acb, int i, 
QuorumVoteValue *hash)
      return 0;
  }

-static QuorumVoteVersion *quorum_get_vote_winner(QuorumVotes *votes)
+static QuorumVoteVersion *quorum_get_vote_winner(QuorumVotes *votes, bool 
vote_error)

Long line. Please wrap things to stay within 80 columns.


Ok

  {
      int max = 0;
      QuorumVoteVersion *candidate, *winner = NULL;
@@ -455,6 +455,12 @@ static QuorumVoteVersion 
*quorum_get_vote_winner(QuorumVotes *votes)
          if (candidate->vote_count > max) {
              max = candidate->vote_count;
              winner = candidate;
+            continue;
+        }
+        /* For 64 bit hash */
+        if (vote_error == true && candidate->vote_count == max

s/ == true// (no need to do a redundant comparison of a bool against a
bool).

Ok

Thanks
        -Xie








reply via email to

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