linux_dsm_epyc7002/drivers/block/drbd
Lars Ellenberg 05a72772fc drbd: drbdsetup detach of an unresponsive local disk should not block IO "forever"
When detaching, we make sure no application IO is in-flight
by internally suspending IO, then trigger the state change,
wait for the result, and finally internally resume IO again.

Once we triggered the stat change to "Failed",
we expect it to change from Failed to Diskless.
(To avoid races, we actually wait for it to leave "Failed").

On an unresponsive local IO backend, this may not happen, ever.
Don't have a "hung" detach block IO "forever", but resume IO
before waiting for the state change to Diskless.

We may well be able to continue IO to and from a healthy peer.

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>
2015-11-25 09:22:01 -07:00
..
drbd_actlog.c
drbd_bitmap.c
drbd_debugfs.c
drbd_debugfs.h
drbd_int.h drbd: Backport the "events2" command 2015-11-25 09:22:00 -07:00
drbd_interval.c
drbd_interval.h
drbd_main.c drbd: Fix locking across all resources 2015-11-25 09:22:00 -07:00
drbd_nl.c drbd: drbdsetup detach of an unresponsive local disk should not block IO "forever" 2015-11-25 09:22:01 -07:00
drbd_nla.c
drbd_nla.h
drbd_proc.c drbd: Move enum write_ordering_e to drbd.h 2015-11-25 09:22:00 -07:00
drbd_protocol.h
drbd_receiver.c drbd: Backport the "events2" command 2015-11-25 09:22:00 -07:00
drbd_req.c drbd: Fix spurious disk-timeout 2015-11-25 09:22:01 -07:00
drbd_req.h
drbd_state_change.h drbd: Backport the "events2" command 2015-11-25 09:22:00 -07:00
drbd_state.c drbd: Backport the "events2" command 2015-11-25 09:22:00 -07:00
drbd_state.h drbd: Fix locking across all resources 2015-11-25 09:22:00 -07:00
drbd_strings.c
drbd_strings.h
drbd_vli.h
drbd_worker.c drbd: Fix locking across all resources 2015-11-25 09:22:00 -07:00
Kconfig
Makefile