Blame SOURCES/bz720543-pcmk-fencing_allow_fencing_for_node_after_topology_entries_are_deleted.patch

ed0026
commit ca9ea8de96463d137f64977a01517bf794d1f4e4
ed0026
Author: David Vossel <dvossel@redhat.com>
ed0026
Date:   Tue Oct 1 18:26:56 2013 -0500
ed0026
ed0026
    Fix: fencing: Allow fencing for node after topology entries are deleted
ed0026
    
ed0026
    (cherry picked from commit 57de742c237ac5c01b4a7ead70003cbaffed9a3e)
ed0026
ed0026
diff --git a/fencing/remote.c b/fencing/remote.c
ed0026
index 525f1d7..af4fb9e 100644
ed0026
--- a/fencing/remote.c
ed0026
+++ b/fencing/remote.c
ed0026
@@ -374,6 +374,23 @@ remote_op_query_timeout(gpointer data)
ed0026
     return FALSE;
ed0026
 }
ed0026
 
ed0026
+static gboolean
ed0026
+topology_is_empty(stonith_topology_t *tp)
ed0026
+{
ed0026
+    int i;
ed0026
+
ed0026
+    if (tp == NULL) {
ed0026
+        return TRUE;
ed0026
+    }
ed0026
+
ed0026
+    for (i = 0; i < ST_LEVEL_MAX; i++) {
ed0026
+        if (tp->levels[i] != NULL) {
ed0026
+            return FALSE;
ed0026
+        }
ed0026
+    }
ed0026
+    return TRUE;
ed0026
+}
ed0026
+
ed0026
 static int
ed0026
 stonith_topology_next(remote_fencing_op_t * op)
ed0026
 {
ed0026
@@ -383,7 +400,7 @@ stonith_topology_next(remote_fencing_op_t * op)
ed0026
         /* Queries don't have a target set */
ed0026
         tp = g_hash_table_lookup(topology, op->target);
ed0026
     }
ed0026
-    if (tp == NULL) {
ed0026
+    if (topology_is_empty(tp)) {
ed0026
         return pcmk_ok;
ed0026
     }
ed0026