Sophie

Sophie

distrib > Scientific%20Linux > 5x > x86_64 > media > main-src > by-pkgid > e536fc0c6270ec1d92a0fd41bb1f8360 > files > 126

rgmanager-2.0.52-28.el5_8.2.src.rpm

From badfcf9fd75c65285c1a231d989346098ea1c42c Mon Sep 17 00:00:00 2001
From: Lon Hohberger <lhh@redhat.com>
Date: Fri, 24 Sep 2010 16:45:29 -0400
Subject: [PATCH] rgmanager: Fix corner case in critical/non-critical handling

If a subtree had failed and you removed
__independent_subtree from the configuration for that
subtree as part of a reconfiguration operation, the
subtree would fail to stop, causing the service to enter
the failed state.

Resolves: rhbz#605733

Signed-off-by: Lon Hohberger <lhh@redhat.com>
---
 rgmanager/src/daemons/restree.c |    4 ++--
 1 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/rgmanager/src/daemons/restree.c b/rgmanager/src/daemons/restree.c
index eca28f3..951dbda 100644
--- a/rgmanager/src/daemons/restree.c
+++ b/rgmanager/src/daemons/restree.c
@@ -1636,8 +1636,8 @@ _res_op_internal(resource_node_t __attribute__ ((unused)) **tree,
 			assert(node->rn_resource->r_incarnations >= 0);
 			if (node->rn_resource->r_incarnations > 0)
 				--node->rn_resource->r_incarnations;
-		} else if (node->rn_state != RES_DISABLED &&
-			   !(node->rn_flags & RF_QUIESCE)) {
+		} else if (rv != 0 && (node->rn_state != RES_DISABLED &&
+			   !(node->rn_flags & RF_QUIESCE))) {
 			node->rn_state = RES_FAILED;
 			pthread_mutex_unlock(&node->rn_resource->r_mutex);
 			return SFL_FAILURE;
-- 
1.7.2.2