6501351 sanlock: preserve dblock values when setting shared flag

Authored and Committed by teigland 6 years ago
    sanlock: preserve dblock values when setting shared flag
    
    steps for acquiring a shared lease:
    1. acquire paxos lease
    2. write shared flag into mode_block
    3. release paxos lease
    
    The mode_block follows the dblock, and when writing the
    new mode_block, the dblock values were cleared.
    
    If another host is running a paxos ballot for the same
    lver (leader version) of the lease as was acquired in step 1,
    then clearing the dblock values in step 2 can cause the
    paxos ballot to miss the fact that the lease has already
    been acquired for the given version, and the second host
    will think that it also has acquired the lease with the same
    version.
    
    This is fixed by keeping the dblock values intact when
    writing the mode_block in step 2.
    
        
file modified
+2 -1
file modified
+4 -1
file modified
+3 -0
file modified
+39 -19