[Cluster-devel] cluster/rgmanager/src/daemons restree.c

lhh at sourceware.org lhh at sourceware.org
Thu Feb 22 16:37:29 UTC 2007


CVSROOT:	/cvs/cluster
Module name:	cluster
Changes by:	lhh at sourceware.org	2007-02-22 16:37:28

Modified files:
	rgmanager/src/daemons: restree.c 

Log message:
	Make status checks happen at 'start' time (parent-before-child) instead of 'stop' time (parent-after-child).

Patches:
http://sourceware.org/cgi-bin/cvsweb.cgi/cluster/rgmanager/src/daemons/restree.c.diff?cvsroot=cluster&r1=1.24&r2=1.25

--- cluster/rgmanager/src/daemons/restree.c	2007/01/26 21:42:30	1.24
+++ cluster/rgmanager/src/daemons/restree.c	2007/02/22 16:37:28	1.25
@@ -1027,15 +1027,21 @@
 				++node->rn_resource->r_incarnations;
 				node->rn_state = RES_STARTED;
 			}
+		} else if (me && (op == RS_STATUS)) {
+			/* Check status before children*/
+			rv = do_status(node);
+			if (rv != 0)
+				return rv;
 		}
 
+
 		if (node->rn_child) {
 			rv = _res_op_by_level(&node, me?NULL:first, ret, op);
 			if (rv != 0)
 				return rv;
 		}
 
-		/* Stop/status/etc stops after children have stopped */
+		/* Stop should occur after children have stopped */
 		if (me && (op == RS_STOP)) {
 			node->rn_flags &= ~RF_NEEDSTOP;
 			rv = res_exec(node, res_ops[op], NULL, 0);
@@ -1049,12 +1055,6 @@
 				--node->rn_resource->r_incarnations;
 				node->rn_state = RES_STOPPED;
 			}
-
-		} else if (me && (op == RS_STATUS)) {
-
-			rv = do_status(node);
-			if (rv != 0)
-				return rv;
 		}
 
 		/*




More information about the Cluster-devel mailing list