linux/drivers/block
Lars Ellenberg 580b9767db drbd: fix broken state change after split-brain attach while connected
Situation:
we have diverging data sets, i.e. we had a split brain somewhen,
but currently are connected, one node diskless.

Then we try to attach that disk, figure it is consistent,
but has a diverging data set, we refuse to attach.

This led to strange state changes:
22:18:35 bb drbd1: peer( Unknown -> Primary ) conn( WFReportParams -> Connected) pdsk( DUnknown -> UpToDate )
22:19:30 bb drbd1: disk( Diskless -> Attaching )
22:19:30 bb drbd1: disk( Attaching -> Negotiating )
22:19:30 bb drbd1: drbd_sync_handshake:
22:19:30 bb drbd1: self 97BF25798B9D5222:F33D1F62ADE698DD:4269796F9D027C83:AC45D8B5C3C1BF93 bits:19449 flags:0
22:19:30 bb drbd1: peer 280DFB6E125465D3:F33D1F62ADE698DC:4269796F9D027C82:AC45D8B5C3C1BF93 bits:2575806 flags:0
22:19:30 bb drbd1: uuid_compare()=100 by rule 90
22:19:30 bb drbd1: Split-Brain detected, dropping connection!
22:19:30 bb drbd1: disk( Negotiating -> Diskless )

while the other side says:
22:19:30 aa drbd1: Split-Brain detected, dropping connection!
22:19:30 aa drbd1: Disk attach process on the peer node was aborted.
22:19:30 aa drbd1: conn( Connected -> TOO_LARGE ) pdsk( Diskless -> Consistent )

This should be fixed now.

Signed-off-by: Philipp Reisner <philipp.reisner@linbit.com>
Signed-off-by: Lars Ellenberg <lars.ellenberg@linbit.com>
2010-03-11 16:00:09 +01:00
..
aoe aoe: switch to the new bio_flush_dcache_pages() interface 2009-12-22 09:12:48 +01:00
drbd drbd: fix broken state change after split-brain attach while connected 2010-03-11 16:00:09 +01:00
paride block: Consolidate phys_segment and hw_segment limits 2010-02-26 13:58:08 +01:00
DAC960.c block: Consolidate phys_segment and hw_segment limits 2010-02-26 13:58:08 +01:00
DAC960.h
Kconfig The DRBD driver 2009-10-01 21:17:49 +02:00
Makefile The DRBD driver 2009-10-01 21:17:49 +02:00
amiflop.c const: make block_device_operations const 2009-09-22 07:17:25 -07:00
ataflop.c ataflop: Killl warning about unused variable flags 2010-02-27 18:27:15 +01:00
brd.c block: Rename blk_queue_max_sectors to blk_queue_max_hw_sectors 2010-02-26 13:58:08 +01:00
cciss.c cciss: factor out scatter gather chain block mapping code 2010-02-28 19:42:32 +01:00
cciss.h cciss: do not use void pointer for scsi hba data 2010-02-28 19:42:32 +01:00
cciss_cmd.h cciss: detect bad alignment of scsi commands at build time 2010-02-28 19:42:31 +01:00
cciss_scsi.c cciss: Fix problem with scatter gather elements in the scsi half of the driver 2010-02-28 19:42:32 +01:00
cciss_scsi.h cciss: remove C99-style comments 2010-02-22 13:44:45 +01:00
cpqarray.c block: Consolidate phys_segment and hw_segment limits 2010-02-26 13:58:08 +01:00
cpqarray.h
cryptoloop.c drivers: Remove unnecessary inclusions of asm/semaphore.h 2008-04-18 22:16:32 -04:00
floppy.c block: Rename blk_queue_max_sectors to blk_queue_max_hw_sectors 2010-02-26 13:58:08 +01:00
hd.c block: Rename blk_queue_max_sectors to blk_queue_max_hw_sectors 2010-02-26 13:58:08 +01:00
ida_cmd.h
ida_ioctl.h
loop.c loop: fix NULL dereference if mount fails 2009-10-29 07:39:27 -07:00
mg_disk.c block: Rename blk_queue_max_sectors to blk_queue_max_hw_sectors 2010-02-26 13:58:08 +01:00
nbd.c const: make block_device_operations const 2009-09-22 07:17:25 -07:00
osdblk.c const: make block_device_operations const 2009-09-22 07:17:25 -07:00
pktcdvd.c block: Consolidate phys_segment and hw_segment limits 2010-02-26 13:58:08 +01:00
ps3disk.c block: Consolidate phys_segment and hw_segment limits 2010-02-26 13:58:08 +01:00
ps3vram.c block: fix for "Consolidate phys_segment and hw_segment limits" 2010-03-01 10:43:39 +01:00
smart1,2.h
sunvdc.c block: Consolidate phys_segment and hw_segment limits 2010-02-26 13:58:08 +01:00
swim.c mac68k: rework SWIM platform device 2010-02-27 18:27:15 +01:00
swim3.c powerpc/macio: Rework hotplug media bay support 2009-12-09 17:09:14 +11:00
swim_asm.S m68k: mac - Add SWIM floppy support 2009-03-26 21:15:27 +01:00
sx8.c block: Consolidate phys_segment and hw_segment limits 2010-02-26 13:58:08 +01:00
ub.c block: Consolidate phys_segment and hw_segment limits 2010-02-26 13:58:08 +01:00
umem.c const: make block_device_operations const 2009-09-22 07:17:25 -07:00
umem.h
viodasd.c Merge branch 'for-2.6.34' of git://git.kernel.dk/linux-2.6-block 2010-03-01 09:00:29 -08:00
virtio_blk.c Merge branch 'for-2.6.34' of git://git.kernel.dk/linux-2.6-block 2010-03-01 09:00:29 -08:00
xd.c block: Rename blk_queue_max_sectors to blk_queue_max_hw_sectors 2010-02-26 13:58:08 +01:00
xd.h [PATCH] switch xd 2008-10-21 07:48:11 -04:00
xen-blkfront.c block: Consolidate phys_segment and hw_segment limits 2010-02-26 13:58:08 +01:00
xsysace.c block: make Open Firmware device id constant 2010-01-11 14:31:27 +01:00
z2ram.c const: make block_device_operations const 2009-09-22 07:17:25 -07:00