summaryrefslogtreecommitdiffstats
path: root/fs/dlm/lockspace.c
diff options
context:
space:
mode:
authorDavid Teigland <teigland@redhat.com>2007-05-18 08:58:15 -0500
committerSteven Whitehouse <swhiteho@redhat.com>2007-07-09 08:22:31 +0100
commit85e86edf951a8a39954c0ba1edbe4a58827dcd5c (patch)
tree0d605cdea61d8301c20a87784456a660aba89017 /fs/dlm/lockspace.c
parent916297aad5de2363dccd531873eda55d4d6afb57 (diff)
downloadlinux-85e86edf951a8a39954c0ba1edbe4a58827dcd5c.tar.gz
linux-85e86edf951a8a39954c0ba1edbe4a58827dcd5c.tar.bz2
linux-85e86edf951a8a39954c0ba1edbe4a58827dcd5c.zip
[DLM] block scand during recovery [1/6]
Don't let dlm_scand run during recovery since it may try to do a resource directory removal while the directory nodes are changing. Signed-off-by: David Teigland <teigland@redhat.com> Signed-off-by: Steven Whitehouse <swhiteho@redhat.com>
Diffstat (limited to 'fs/dlm/lockspace.c')
-rw-r--r--fs/dlm/lockspace.c8
1 files changed, 6 insertions, 2 deletions
diff --git a/fs/dlm/lockspace.c b/fs/dlm/lockspace.c
index a677b2a5eed4..414a108df934 100644
--- a/fs/dlm/lockspace.c
+++ b/fs/dlm/lockspace.c
@@ -234,8 +234,12 @@ static int dlm_scand(void *data)
struct dlm_ls *ls;
while (!kthread_should_stop()) {
- list_for_each_entry(ls, &lslist, ls_list)
- dlm_scan_rsbs(ls);
+ list_for_each_entry(ls, &lslist, ls_list) {
+ if (dlm_lock_recovery_try(ls)) {
+ dlm_scan_rsbs(ls);
+ dlm_unlock_recovery(ls);
+ }
+ }
schedule_timeout_interruptible(dlm_config.ci_scan_secs * HZ);
}
return 0;