Gitweb:
http://git.fedorahosted.org/git/cluster.git?p=cluster.git;a=commitdiff;h=...
Commit: 87212596001faaefb9a10ec8f6678a877dc907bb
Parent: d440c5f62d95c1ee4e59f9daff12fc64b29e4e3d
Author: David Teigland <teigland(a)redhat.com>
AuthorDate: Mon Sep 28 12:10:43 2009 -0500
Committer: David Teigland <teigland(a)redhat.com>
CommitterDate: Mon Sep 28 12:15:34 2009 -0500
dlm_controld: fix set_fs_notified when ls doesn't exist
If a node fails during mount of cluster fs before joining
the dlm lockspace, then the fs_controld and dlm_controld
would never be able to sync up, since dlm_controld would
never have seen the failed node that fs_controld wants to
recover. The two daemons would sit spinning, retrying
and replying for the fs_notified check.
Signed-off-by: David Teigland <teigland(a)redhat.com>
---
group/dlm_controld/cpg.c | 5 +++++
1 files changed, 5 insertions(+), 0 deletions(-)
diff --git a/group/dlm_controld/cpg.c b/group/dlm_controld/cpg.c
index 1eff685..d5245ce 100644
--- a/group/dlm_controld/cpg.c
+++ b/group/dlm_controld/cpg.c
@@ -2293,6 +2293,11 @@ int set_fs_notified(struct lockspace *ls, int nodeid)
return -ESRCH;
}
+ if (!find_memb(ls->started_change, nodeid)) {
+ log_group(ls, "set_fs_notified %d not in ls", nodeid);
+ return 0;
+ }
+
/* this can happen, we haven't seen a nodedown for this node yet,
but we should soon */
if (!node->check_fs) {