drbd: drbd_panic_after_delayed_completion_of_aborted_request()
authorLars Ellenberg <lars.ellenberg@linbit.com>
Thu, 19 Feb 2015 12:48:59 +0000 (13:48 +0100)
committerJens Axboe <axboe@fb.com>
Wed, 25 Nov 2015 16:22:01 +0000 (09:22 -0700)
commit142207f782dd7f174a1e1b954c3a9dd04316bd95
treeabae7ef0ce851a18d02a291ba3b3298ee8e19a65
parentdc99562a48f39db4be0f9195137ec6f5350baf19
drbd: drbd_panic_after_delayed_completion_of_aborted_request()

The only way to make DRBD intentionally call panic is to
set a disk timeout, have that trigger, "abort" some request and complete
to upper layers, then have the backend IO subsystem later complete these
requests successfully regardless.

As the attached IO pages have been recycled for other purposes
meanwhile, this will cause unexpected random memory changes.
To prevent corruption, we rather panic in that case.

Make it obvious from stack traces that this was the case by introducing
drbd_panic_after_delayed_completion_of_aborted_request().

Signed-off-by: Philipp Reisner <philipp.reisner@linbit.com>
Signed-off-by: Lars Ellenberg <lars.ellenberg@linbit.com>
Signed-off-by: Jens Axboe <axboe@fb.com>
drivers/block/drbd/drbd_worker.c