linux/drivers/block/drbd
Philipp Reisner 7c689e63a8 drbd: fix for deadlock when using automatic split-brain-recovery
With an automatic after split-brain recovery policy of
"after-sb-1pri call-pri-lost-after-sb",
when trying to drbd_set_role() to R_SECONDARY,
we run into a deadlock.

This was first recognized and supposedly fixed by
2009-06-10 "Fixed a deadlock when using automatic split brain recovery when both nodes are"
replacing drbd_set_role() with drbd_change_state() in that code-path,
but the first hunk of that patch forgets to remove the drbd_set_role().

We apparently only ever tested the "two primaries" case.

Signed-off-by: Philipp Reisner <philipp.reisner@linbit.com>
Signed-off-by: Lars Ellenberg <lars.ellenberg@linbit.com>
Signed-off-by: Jens Axboe <axboe@kernel.dk>
2013-03-28 10:10:25 -06:00
..
drbd_actlog.c drbd: consolidate as many updates as possible into one AL transaction 2013-03-22 22:18:09 -06:00
drbd_bitmap.c drbd: cleanup ondisk meta data layout calculations and defines 2013-03-22 18:13:59 -06:00
drbd_int.h drbd: consolidate as many updates as possible into one AL transaction 2013-03-22 22:18:09 -06:00
drbd_interval.c Merge branch 'drbd-8.4_ed6' into for-3.8-drivers-drbd-8.4_ed6 2012-11-09 14:20:23 +01:00
drbd_interval.h drbd: Iterate over all overlapping intervals in a tree 2011-10-14 16:47:37 +02:00
drbd_main.c drbd: fix memory leak 2013-03-28 10:10:25 -06:00
drbd_nl.c drbd: validate resync_after dependency on attach already 2013-03-28 10:10:25 -06:00
drbd_nla.c drbd: Split off netlink mandatory attribute handling into separate file 2012-11-08 16:57:45 +01:00
drbd_nla.h drbd: Split off netlink mandatory attribute handling into separate file 2012-11-08 16:57:45 +01:00
drbd_proc.c drbd: add module_put() on error path in drbd_proc_open() 2013-03-28 10:10:25 -06:00
drbd_receiver.c drbd: fix for deadlock when using automatic split-brain-recovery 2013-03-28 10:10:25 -06:00
drbd_req.c drbd: fix drbd epoch write count for ahead/behind mode 2013-03-28 10:10:25 -06:00
drbd_req.h drbd: only fail empty flushes if no good data is reachable 2013-03-28 10:10:25 -06:00
drbd_state.c drbd: Fix disconnect to keep the peer disk state if connection breaks during operation 2013-03-28 10:10:25 -06:00
drbd_state.h drbd: Improved logging of state changes 2012-11-08 16:45:06 +01:00
drbd_strings.c drbd: Fix disconnect to keep the peer disk state if connection breaks during operation 2013-03-28 10:10:25 -06:00
drbd_vli.h Fix common misspellings 2011-03-31 11:26:23 -03:00
drbd_worker.c drbd: validate resync_after dependency on attach already 2013-03-28 10:10:25 -06:00
drbd_wrappers.h drbd: Split off netlink mandatory attribute handling into separate file 2012-11-08 16:57:45 +01:00
Kconfig drbd: update Kconfig to match current dependencies 2012-12-06 13:08:29 +01:00
Makefile drbd: Split off netlink mandatory attribute handling into separate file 2012-11-08 16:57:45 +01:00