[Cluster-devel] cluster/rgmanager ChangeLog src/daemons/restree.c
lhh at sourceware.org
lhh at sourceware.org
Tue Sep 25 21:09:23 UTC 2007
CVSROOT: /cvs/cluster
Module name: cluster
Branch: RHEL5
Changes by: lhh at sourceware.org 2007-09-25 21:09:23
Modified files:
rgmanager : ChangeLog
rgmanager/src/daemons: restree.c
Log message:
Ancillary patch for side case re: #229650 - patch from Simone Gotti.
Patches:
http://sourceware.org/cgi-bin/cvsweb.cgi/cluster/rgmanager/ChangeLog.diff?cvsroot=cluster&only_with_tag=RHEL5&r1=1.31.2.26&r2=1.31.2.27
http://sourceware.org/cgi-bin/cvsweb.cgi/cluster/rgmanager/src/daemons/restree.c.diff?cvsroot=cluster&only_with_tag=RHEL5&r1=1.23.2.11&r2=1.23.2.12
--- cluster/rgmanager/ChangeLog 2007/08/30 16:03:02 1.31.2.26
+++ cluster/rgmanager/ChangeLog 2007/09/25 21:09:23 1.31.2.27
@@ -1,3 +1,7 @@
+2007-09-25 Lon Hohberger <lhh at redhat.com>
+ * src/daemons/restree.c: Apply patch to fix side case re: 229650
+ Patch from Simone Gotti. Resolves: #229650
+
2007-08-30 Lon Hohberger <lhh at redhat.com>
* src/daemons/restree.c, rg_state.c: Fix tree-restart bug
This is another part of #229650
--- cluster/rgmanager/src/daemons/restree.c 2007/08/30 16:03:03 1.23.2.11
+++ cluster/rgmanager/src/daemons/restree.c 2007/09/25 21:09:23 1.23.2.12
@@ -1242,9 +1242,23 @@
}
- if (node->rn_child)
- rv |= _res_op_by_level(&node, me?NULL:first, ret, op);
+ if (node->rn_child) {
+ rv |= _res_op_by_level(&node, me?NULL:first, ret, op);
+ /* If one or more child resources are failed and at least one
+ of them is not an independent subtree then let's check if
+ if we are an independent subtree. If so, mark ourself
+ and all our children as failed and return a flag stating
+ that this section is recoverable apart from siblings in
+ the resource tree. */
+ if (op == RS_STATUS && (rv & SFL_FAILURE) &&
+ (node->rn_flags & RF_INDEPENDENT)) {
+ mark_nodes(node, RES_FAILED,
+ RF_NEEDSTART | RF_NEEDSTOP);
+ rv = SFL_RECOVERABLE;
+ }
+ }
+
/* Stop should occur after children have stopped */
if (me && (op == RS_STOP)) {
node->rn_flags &= ~RF_NEEDSTOP;
More information about the Cluster-devel
mailing list