summaryrefslogtreecommitdiffstats
path: root/fs/dlm/member.c
diff options
context:
space:
mode:
authorTrond Myklebust <Trond.Myklebust@netapp.com>2006-12-07 22:35:17 +0100
committerTrond Myklebust <Trond.Myklebust@netapp.com>2006-12-07 22:35:17 +0100
commit21b4e736922f546e0f1aa7b9d6c442f309a2444a (patch)
treee1be8645297f8ebe87445251743ebcc52081a20d /fs/dlm/member.c
parentMerge branch 'master' of /home/trondmy/kernel/linux-2.6/ into merge_linus (diff)
parentAdd "run_scheduled_work()" workqueue function (diff)
downloadlinux-21b4e736922f546e0f1aa7b9d6c442f309a2444a.tar.xz
linux-21b4e736922f546e0f1aa7b9d6c442f309a2444a.zip
Merge branch 'master' of /home/trondmy/kernel/linux-2.6/ into merge_linus
Diffstat (limited to 'fs/dlm/member.c')
-rw-r--r--fs/dlm/member.c8
1 files changed, 8 insertions, 0 deletions
diff --git a/fs/dlm/member.c b/fs/dlm/member.c
index a3f7de7f3a8f..85e2897bd740 100644
--- a/fs/dlm/member.c
+++ b/fs/dlm/member.c
@@ -186,6 +186,14 @@ int dlm_recover_members(struct dlm_ls *ls, struct dlm_recover *rv, int *neg_out)
struct dlm_member *memb, *safe;
int i, error, found, pos = 0, neg = 0, low = -1;
+ /* previously removed members that we've not finished removing need to
+ count as a negative change so the "neg" recovery steps will happen */
+
+ list_for_each_entry(memb, &ls->ls_nodes_gone, list) {
+ log_debug(ls, "prev removed member %d", memb->nodeid);
+ neg++;
+ }
+
/* move departed members from ls_nodes to ls_nodes_gone */
list_for_each_entry_safe(memb, safe, &ls->ls_nodes, list) {