mirror of
https://github.com/torvalds/linux.git
synced 2024-12-05 02:23:16 +00:00
add missing state change on corrupt packet header in drbd_recv_header
Otherwise the 'state fixup' in the receiver will change to Unconnected, but the receiver will terminate itself, and any attempt at 'down'ing that drbd later will block forever. see also Bugz. #259 Signed-off-by: Philipp Reisner <philipp.reisner@linbit.com> Signed-off-by: Lars Ellenberg <lars.ellenberg@linbit.com>
This commit is contained in:
parent
6c6c7951be
commit
0b33a9164a
@ -3499,8 +3499,10 @@ static void drbdd(struct drbd_conf *mdev)
|
||||
|
||||
while (get_t_state(&mdev->receiver) == Running) {
|
||||
drbd_thread_current_set_cpu(mdev);
|
||||
if (!drbd_recv_header(mdev, header))
|
||||
if (!drbd_recv_header(mdev, header)) {
|
||||
drbd_force_state(mdev, NS(conn, C_PROTOCOL_ERROR));
|
||||
break;
|
||||
}
|
||||
|
||||
if (header->command < P_MAX_CMD)
|
||||
handler = drbd_cmd_handler[header->command];
|
||||
|
Loading…
Reference in New Issue
Block a user