linux/drivers/block/drbd
Lars Ellenberg be80ff8835 drbd: avoid spurious self-outdating with concurrent disconnect / down
If peers are "simultaneously" told to disconnect from each other,
either explicitly, or implicitly by taking down the resource,
with bad timing, one side may see its disconnect "fail" with
a result of "state change failed by peer", and interpret this as
"please oudate yourself".

Try to catch this by checking for current connection status,
and possibly retry as local-only state change instead.

Signed-off-by: Lars Ellenberg <lars.ellenberg@linbit.com>
Signed-off-by: Jens Axboe <axboe@kernel.dk>
2018-12-20 09:51:30 -07:00
..
drbd_actlog.c block: replace bi_bdev with a gendisk pointer and partitions index 2017-08-23 12:49:55 -06:00
drbd_bitmap.c drbd: convert to bioset_init()/mempool_init() 2018-05-30 15:33:32 -06:00
drbd_debugfs.c block drivers/block: Use octal not symbolic permissions 2018-05-24 13:38:59 -06:00
drbd_debugfs.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
drbd_int.h drbd: centralize printk reporting of new size into drbd_set_my_capacity() 2018-12-20 09:51:29 -07:00
drbd_interval.c License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
drbd_interval.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
drbd_main.c drbd: centralize printk reporting of new size into drbd_set_my_capacity() 2018-12-20 09:51:29 -07:00
drbd_nl.c drbd: avoid spurious self-outdating with concurrent disconnect / down 2018-12-20 09:51:30 -07:00
drbd_nla.c License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
drbd_nla.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
drbd_proc.c drbd: switch to proc_create_single 2018-05-16 07:24:30 +02:00
drbd_protocol.h block: Finish renaming REQ_DISCARD into REQ_OP_DISCARD 2018-10-03 16:12:28 -06:00
drbd_receiver.c drbd: fix comment typos 2018-12-20 09:51:30 -07:00
drbd_req.c block: Finish renaming REQ_DISCARD into REQ_OP_DISCARD 2018-10-03 16:12:28 -06:00
drbd_req.h drbd: convert to bioset_init()/mempool_init() 2018-05-30 15:33:32 -06:00
drbd_state.c drbd: fix comment typos 2018-12-20 09:51:30 -07:00
drbd_state.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
drbd_state_change.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
drbd_strings.c drbd: code cleanups without semantic changes 2016-06-13 21:43:07 -06:00
drbd_strings.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
drbd_vli.h Fix common misspellings 2011-03-31 11:26:23 -03:00
drbd_worker.c block: Finish renaming REQ_DISCARD into REQ_OP_DISCARD 2018-10-03 16:12:28 -06:00
Kconfig drivers/block: remove redundant 'default n' from Kconfig-s 2018-10-10 14:11:08 -06:00
Makefile License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00