linux-sg2042/drivers/block/drbd
Philipp Reisner dc66c74de6 drbd: Fixed a race between disk-attach and unexpected state changes
This was a very hard to trigger race condition.

If we got a state packet from the peer, after drbd_nl_disk() has
already changed the disk state to D_NEGOTIATING but
after_state_ch() was not yet run by the worker, then receive_state()
might called drbd_sync_handshake(), which in turn crashed
when accessing p_uuid.

Signed-off-by: Philipp Reisner <philipp.reisner@linbit.com>
Signed-off-by: Lars Ellenberg <lars.ellenberg@linbit.com>
2010-06-14 12:19:41 +02:00
..
Kconfig drbd: Kconfig fix 2009-12-29 17:38:28 +01:00
Makefile drbd: remove tracing bits 2009-10-01 21:17:58 +02:00
drbd_actlog.c drbd: lc_element_by_index() never returns NULL 2010-04-02 08:40:33 +02:00
drbd_bitmap.c drbd: Fixed bitmap in case of online-grow without resync 2010-05-18 01:20:33 +02:00
drbd_int.h drbd: use drbd specific ratelimit instead of global printk_ratelimit 2010-06-01 11:12:27 +02:00
drbd_main.c drbd: Fixed a race between disk-attach and unexpected state changes 2010-06-14 12:19:41 +02:00
drbd_nl.c drbd: Fixed a race between disk-attach and unexpected state changes 2010-06-14 12:19:41 +02:00
drbd_proc.c drbd: Fixes to the new delay_probes code 2010-05-18 01:28:08 +02:00
drbd_receiver.c drbd: removed duplicated #includes 2010-06-01 11:12:27 +02:00
drbd_req.c drbd: Reduce verbosity 2010-06-01 11:12:27 +02:00
drbd_req.h drbd: fix hang on local read errors while disconnected 2010-06-01 11:12:27 +02:00
drbd_strings.c drbd: don't start a resync without access to up-to-date Data 2010-05-18 01:08:18 +02:00
drbd_vli.h The DRBD driver 2009-10-01 21:17:49 +02:00
drbd_worker.c drbd: Reduce verbosity 2010-06-01 11:12:27 +02:00
drbd_wrappers.h drbd: Allow drbd_epoch_entries to use multiple bios. 2010-05-18 02:01:23 +02:00