linux/drivers/block/drbd
Lars Ellenberg 27012382bc drbd: take error path in drbd_adm_down if interrupted by signal
drbd_adm_down() does adm_detach(), which can fail with various error
codes, or be interrupted by a signal.

The interrupted by signal case was not properly handled,
leading to
	block drbd0: ASSERT( mdev->state.disk == D_DISKLESS &&
	                     mdev->state.conn == C_STANDALONE ) in drbd/drbd_worker.c
and further to destroying objects while still in use, and resulting crashes.

Detect the interruption, and take the error path out.

Signed-off-by: Philipp Reisner <philipp.reisner@linbit.com>
Signed-off-by: Lars Ellenberg <lars.ellenberg@linbit.com>
2012-11-08 16:58:37 +01:00
..
drbd_actlog.c drbd: move the drbd_work_queue from drbd_socket to drbd_connection 2012-11-08 16:58:34 +01:00
drbd_bitmap.c drbd: fix access of unallocated pages and kernel panic 2012-11-08 16:58:32 +01:00
drbd_int.h drbd: base completion and destruction of requests on ref counts 2012-11-08 16:58:36 +01:00
drbd_interval.c drbd: Iterate over all overlapping intervals in a tree 2011-10-14 16:47:37 +02: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: allow read requests to be retried after force-detach 2012-11-08 16:58:37 +01:00
drbd_nl.c drbd: take error path in drbd_adm_down if interrupted by signal 2012-11-08 16:58:37 +01: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: Move list of epochs from mdev to tconn 2012-11-08 16:58:08 +01:00
drbd_receiver.c drbd: remove struct drbd_tl_epoch objects (barrier works) 2012-11-08 16:58:35 +01:00
drbd_req.c drbd: allow read requests to be retried after force-detach 2012-11-08 16:58:37 +01:00
drbd_req.h drbd: allow read requests to be retried after force-detach 2012-11-08 16:58:37 +01:00
drbd_state.c drbd: move the drbd_work_queue from drbd_socket to drbd_connection 2012-11-08 16:58:34 +01:00
drbd_state.h drbd: Improved logging of state changes 2012-11-08 16:45:06 +01:00
drbd_strings.c drbd: Allow volumes to become primary only on one side 2012-11-04 00:16:31 +01:00
drbd_vli.h Fix common misspellings 2011-03-31 11:26:23 -03:00
drbd_worker.c drbd: remove struct drbd_tl_epoch objects (barrier works) 2012-11-08 16:58:35 +01:00
drbd_wrappers.h drbd: Split off netlink mandatory attribute handling into separate file 2012-11-08 16:57:45 +01:00
Kconfig drbd: Kconfig fix 2009-12-29 17:38:28 +01:00
Makefile drbd: Split off netlink mandatory attribute handling into separate file 2012-11-08 16:57:45 +01:00