Gitweb:
http://git.fedorahosted.org/git/dlm.git?p=dlm.git;a=commitdiff;h=e0a21476...
Commit: e0a214768b9b91e4b466405f0d24c4c634e6cfb2
Parent: 47d2b45af016d154258e9b7d5249dfe2c31ecffc
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:16:16 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) {