linux/drivers/block/drbd
Philipp Reisner 4a23f26496 drbd: Do not full sync if a P_SYNC_UUID packet gets lost
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: Philipp Reisner <philipp.reisner@linbit.com>
Signed-off-by: Lars Ellenberg <lars.ellenberg@linbit.com>
2011-03-10 11:45:32 +01:00
..
drbd_actlog.c drbd: bitmap keep track of changes vs on-disk bitmap 2011-03-10 11:43:19 +01:00
drbd_bitmap.c drbd: fix potential access of on-stack wait_queue_head_t after return 2011-03-10 11:45:08 +01:00
drbd_int.h drbd: Do not full sync if a P_SYNC_UUID packet gets lost 2011-03-10 11:45:32 +01:00
drbd_main.c drbd: Do not full sync if a P_SYNC_UUID packet gets lost 2011-03-10 11:45:32 +01:00
drbd_nl.c drbd: allow petabyte storage on 64bit arch 2011-03-10 11:43:24 +01:00
drbd_proc.c drbd: allow petabyte storage on 64bit arch 2011-03-10 11:43:24 +01:00
drbd_receiver.c drbd: Do not full sync if a P_SYNC_UUID packet gets lost 2011-03-10 11:45:32 +01:00
drbd_req.c drbd: Be more careful with SyncSource -> Ahead transitions 2011-03-10 11:45:26 +01:00
drbd_req.h drbd: Begin to account BIO processing time before inc_ap_bio() 2011-03-10 11:34:57 +01:00
drbd_strings.c drbd: Rename enum drbd_state_ret_codes to enum drbd_state_rv 2011-03-10 11:36:18 +01:00
drbd_vli.h The DRBD driver 2009-10-01 21:17:49 +02:00
drbd_worker.c drbd: Cleaned up the resync timer logic 2011-03-10 11:45:28 +01:00
drbd_wrappers.h drbd: Get rid of unnecessary macros (2) 2011-03-10 11:36:15 +01:00
Kconfig drbd: Kconfig fix 2009-12-29 17:38:28 +01:00
Makefile drbd: remove tracing bits 2009-10-01 21:17:58 +02:00