5a56aa1 sanlock: correct paxos usage

Authored and Committed by teigland 14 years ago
    sanlock: correct paxos usage
    
    Rework how the disk paxos algorithm is applied to the
    ownership and updating of the leader_record.  How this
    was done and worked previously had never been thoroughly
    understood and was wrong in a number of general ways.
    Some main concepts driving these changes:
    
    . ballots are run to commit each new lver
    . a node that successfully completes the ballot needs to
      commit the result from that ballot, which means
      writing the lver from that ballot and the dblock values
      to the leader_record
    . nodes need to monitor the leader_record to learn if
      the next lver has been commited, and if so, return that
      result
    . the hosts participating in a ballot are the ones with
      the latest matching lver in their dblocks
    . each node's mbal should always increase
    
    This includes a new incompatible disk format change,
    due to the addition of some extra info fields to the leader
    and dblock structs.
    
    Error codes are also changed to describe the new conditions.
    
        
file modified
+9 -9
file modified
+4 -1
file modified
+1 -1
file modified
+351 -220
file modified
+37 -30