android_kernel_google_msm/drivers/block/drbd
Philipp Reisner 2e0bc33ad7 drbd: fix for deadlock when using automatic split-brain-recovery
commit 7c689e63a8 upstream.

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>
Signed-off-by: Jonghwan Choi <jhbird.choi@samsung.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2013-05-19 10:54:48 -07:00
..
drbd_actlog.c
drbd_bitmap.c drbd: remove the second argument of k[un]map_atomic() 2012-03-20 21:48:29 +08:00
drbd_int.h module_param: make bool parameters really bool (drivers & misc) 2012-01-13 09:32:20 +10:30
drbd_main.c module_param: make bool parameters really bool (drivers & misc) 2012-01-13 09:32:20 +10:30
drbd_nl.c connector/userns: replace netlink uses of cap_raised() with capable() 2012-05-10 23:21:39 -04:00
drbd_proc.c
drbd_receiver.c drbd: fix for deadlock when using automatic split-brain-recovery 2013-05-19 10:54:48 -07:00
drbd_req.c drbd: add missing part_round_stats to _drbd_start_io_acct 2013-01-21 11:45:25 -08:00
drbd_req.h
drbd_strings.c
drbd_vli.h
drbd_worker.c
drbd_wrappers.h
Kconfig
Makefile