diff options
author | Lars Ellenberg <lars.ellenberg@linbit.com> | 2012-07-24 10:13:55 +0200 |
---|---|---|
committer | Philipp Reisner <philipp.reisner@linbit.com> | 2012-11-08 16:58:37 +0100 |
commit | 27012382bc221a8cf6ca67ced19df699b0ba8e78 (patch) | |
tree | 06f9e5d186a4c236f79cdd7166819ea3cc0744f6 /kernel | |
parent | 9a278a7906066a1b4f37fff9b5e27a92af0ca3ce (diff) |
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>
Diffstat (limited to 'kernel')
0 files changed, 0 insertions, 0 deletions