linux/drivers/block/drbd
Philipp Reisner 63106d3c6c drbd: Removed a race that could cause unexpected execution of w_make_resync_request()
The actual race happened int the drbd_start_resync() function. Where
drbd_resync_finished() -> __drbd_set_state() set STOP_SYNC_TIMER and
armed the timer.

If the timer fired before execution reaches the mod_timer statement
at the end of drbd_start_resync() the latter would cause an
unexpected call to w_make_resync_request().

Removed the STOP_SYNC_TIMER bit, and base it on the connection state.

The STOP_SYNC_TIMER bit probably originates probably the time before
the state engine.

Signed-off-by: Philipp Reisner <philipp.reisner@linbit.com>
Signed-off-by: Lars Ellenberg <lars.ellenberg@linbit.com>
2010-10-14 18:38:29 +02:00
..
drbd_actlog.c drbd: reduce code duplication when receiving data requests 2010-10-14 18:38:19 +02:00
drbd_bitmap.c drbd: Disable activity log updates when the whole device is out of sync 2010-10-14 18:38:26 +02:00
drbd_int.h drbd: Removed a race that could cause unexpected execution of w_make_resync_request() 2010-10-14 18:38:29 +02:00
drbd_main.c drbd: Removed a race that could cause unexpected execution of w_make_resync_request() 2010-10-14 18:38:29 +02:00
drbd_nl.c drbd: implicitly create unconfigured devices on sync-after dependencies 2010-10-14 18:38:28 +02:00
drbd_proc.c drbd: Disable activity log updates when the whole device is out of sync 2010-10-14 18:38:26 +02:00
drbd_receiver.c drbd: Removed a race that could cause unexpected execution of w_make_resync_request() 2010-10-14 18:38:29 +02:00
drbd_req.c drbd: Disable activity log updates when the whole device is out of sync 2010-10-14 18:38:26 +02:00
drbd_req.h drbd: Disable activity log updates when the whole device is out of sync 2010-10-14 18:38:26 +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: Removed a race that could cause unexpected execution of w_make_resync_request() 2010-10-14 18:38:29 +02:00
drbd_wrappers.h drbd: Allow drbd_epoch_entries to use multiple bios. 2010-05-18 02:01:23 +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