• Philipp Reisner's avatar
    drbd: Do not full sync if a P_SYNC_UUID packet gets lost · 4a23f264
    Philipp Reisner authored
    See also commit from 2009-08-15
    "drbd_uuid_compare(): Do not full sync in case a P_SYNC_UUID packet gets lost."
    
    We saw cases where the History UUIDs where not as expected. So the
    detection of the special case did not trigger. With the sync UUID
    no longer being a random number, but deducible from the previous
    bitmap UUID, the detection of this special case becomes more
    reliable.
    
    The SyncUUID now is the previous bitmap UUID + 0x1000000000000.
    
    Rule 5a:
    Cs = H1p & H1p + Offset = Bp
      Connection was lost before SyncUUID Packet came through.
      Corrent (peer) UUIDs:
       Bp = H1p
       H1p = H2p
       H2p = 0
      Become Sync target.
    
    Rule 7a:
    Cp = H1s & H1s + Offset = Bs
      Connection was lost before SyncUUID Packet came through.
      Correct (own) UUIDs:
       Bs = H1s
       H1s = H2s
       H2s = 0
      Become Sync source.
    Signed-off-by: default avatarPhilipp Reisner <philipp.reisner@linbit.com>
    Signed-off-by: default avatarLars Ellenberg <lars.ellenberg@linbit.com>
    4a23f264
drbd_main.c 113 KB