Files
linux-apfs/fs
David Teigland c36258b592 [DLM] block dlm_recv in recovery transition
Introduce a per-lockspace rwsem that's held in read mode by dlm_recv
threads while working in the dlm.  This allows dlm_recv activity to be
suspended when the lockspace transitions to, from and between recovery
cycles.

The specific bug prompting this change is one where an in-progress
recovery cycle is aborted by a new recovery cycle.  While dlm_recv was
processing a recovery message, the recovery cycle was aborted and
dlm_recoverd began cleaning up.  dlm_recv decremented recover_locks_count
on an rsb after dlm_recoverd had reset it to zero.  This is fixed by
suspending dlm_recv (taking write lock on the rwsem) before aborting the
current recovery.

The transitions to/from normal and recovery modes are simplified by using
this new ability to block dlm_recv.  The switch from normal to recovery
mode means dlm_recv goes from processing locking messages, to saving them
for later, and vice versa.  Races are avoided by blocking dlm_recv when
setting the flag that switches between modes.

Signed-off-by: David Teigland <teigland@redhat.com>
Signed-off-by: Steven Whitehouse <swhiteho@redhat.com>
2007-10-10 08:56:38 +01:00
..
2007-09-11 17:21:19 -07:00
2007-08-22 19:52:46 -07:00
2007-09-28 15:36:42 -07:00
2007-07-16 09:05:52 -07:00
2007-07-31 15:39:36 -07:00
2007-09-11 17:21:19 -07:00
2007-09-25 08:51:04 -07:00
2007-10-08 12:58:14 -07:00
2007-07-21 17:49:14 -07:00
2007-07-20 08:44:19 -07:00
2007-07-19 10:04:43 -07:00
2007-07-19 10:04:45 -07:00
2007-07-29 17:09:29 -07:00
2007-09-20 13:19:59 -07:00
2007-07-16 09:05:48 -07:00
2007-09-11 11:38:25 -07:00
2007-09-11 17:21:27 -07:00
2007-07-19 10:04:45 -07:00
2007-07-19 10:04:45 -07:00
2007-07-27 08:08:51 +02:00
2007-07-27 15:40:13 -07:00
2007-07-10 08:04:15 +02:00
2007-09-20 13:19:59 -07:00
2007-07-16 09:05:46 -07:00