OpenCloudOS-Kernel/drivers/block/drbd
Lars Ellenberg d9cc6e2318 drbd: fix various disconnecting races
If an admin requests disconnect at a time when the state handling
already disconnects/reconnects, there have been some races.

Make sure to always really stop the network threads before
returning success for disconnect. Do not pretend successfull
forced disconnect, if the state handling returned an error.

Return success from drbd_adm_down() only after all threads are finished.

Signed-off-by: Philipp Reisner <philipp.reisner@linbit.com>
Signed-off-by: Lars Ellenberg <lars.ellenberg@linbit.com>
2012-11-08 16:49:08 +01:00
..
Kconfig drbd: Kconfig fix 2009-12-29 17:38:28 +01:00
Makefile drbd: Moved the state functions into its own source file 2011-09-28 10:26:43 +02:00
drbd_actlog.c drbd: improvements to activate/deactivate multiple activity log extents 2012-11-08 16:45:02 +01:00
drbd_bitmap.c drbd: introduce a bio_set to allocate housekeeping bios from 2011-10-14 16:48:06 +02:00
drbd_int.h drbd: Removed the OBJECT_DYING and the CONFIG_PENDING bits 2012-11-08 16:49:07 +01:00
drbd_interval.c drbd: Iterate over all overlapping intervals in a tree 2011-10-14 16:47:37 +02:00
drbd_interval.h drbd: Iterate over all overlapping intervals in a tree 2011-10-14 16:47:37 +02:00
drbd_main.c drbd: Take a reference on tconn when finding a tconn by name 2012-11-08 16:49:06 +01:00
drbd_nl.c drbd: fix various disconnecting races 2012-11-08 16:49:08 +01:00
drbd_proc.c drbd: rcu_read_lock() and rcu_dereference() for tconn->net_conf 2012-11-08 16:48:59 +01:00
drbd_receiver.c drbd: fix various disconnecting races 2012-11-08 16:49:08 +01:00
drbd_req.c drbd: rcu_read_lock() and rcu_dereference() for tconn->net_conf 2012-11-08 16:48:59 +01:00
drbd_req.h drbd: Runtime changeable wire protocol 2012-11-08 16:45:18 +01:00
drbd_state.c drbd: fix various disconnecting races 2012-11-08 16:49:08 +01:00
drbd_state.h drbd: Improved logging of state changes 2012-11-08 16:45:06 +01:00
drbd_strings.c drbd: Allow volumes to become primary only on one side 2012-11-04 00:16:31 +01:00
drbd_vli.h Fix common misspellings 2011-03-31 11:26:23 -03:00
drbd_worker.c drbd: Removed the OBJECT_DYING and the CONFIG_PENDING bits 2012-11-08 16:49:07 +01:00
drbd_wrappers.h drbd: Rename drbd_endio_{pri,sec} -> drbd_{,peer_}request_endio 2011-10-14 16:47:36 +02:00