File upstream-submissions.diff of Package libdlm

Index: libdlm/group/dlm_controld/pacemaker.c
===================================================================
--- libdlm.orig/group/dlm_controld/pacemaker.c
+++ libdlm/group/dlm_controld/pacemaker.c
@@ -55,7 +55,6 @@ void close_cluster_cfg(void) {}
 
 extern int ais_fd_async;
 
-int local_node_id = 0;
 char *local_node_uname = NULL;
 void dlm_process_node(gpointer key, gpointer value, gpointer user_data);
 
@@ -84,7 +83,7 @@ void update_cluster(void)
     cluster_quorate = crm_have_quorum;
     if(last_membership < crm_peer_seq) {
 	log_debug("Processing membership %llu", crm_peer_seq);
-	g_hash_table_foreach(crm_peer_cache, dlm_process_node, &last_membership);
+	g_hash_table_foreach(crm_peer_id_cache, dlm_process_node, &last_membership);
 	last_membership = crm_peer_seq;
     }
 }
@@ -148,12 +147,6 @@ void dlm_process_node(gpointer key, gpoi
 	    action = "Added";
 	}
 	
-	if(local_node_id == 0) {
-	    crm_node_t *local_node = g_hash_table_lookup(
-		crm_peer_cache, local_node_uname);
-	    local_node_id = local_node->id;
-	}
-	
 	do {
 	    char ipaddr[1024];
 	    int addr_family = AF_INET;
@@ -204,16 +197,16 @@ void dlm_process_node(gpointer key, gpoi
 		continue;
 	    }
 
-	    log_debug("Adding address %s to configfs for node %u/%s ", addr, node->id, node->uname);
-	    add_configfs_node(node->id, ((char*)&cna_addr), cna_len, (node->id == local_node_id));
+	    log_debug("Adding address %s to configfs for node %u", addr, node->id);
+	    add_configfs_node(node->id, ((char*)&cna_addr), cna_len, (node->id == our_nodeid));
 
 	} while(addr != NULL);
 	free(addr_top);
     }
 
-    log_debug("%s %sctive node %u '%s': born-on=%llu, last-seen=%llu, this-event=%llu, last-event=%llu",
+    log_debug("%s %sctive node %u: born-on=%llu, last-seen=%llu, this-event=%llu, last-event=%llu",
 	       action, crm_is_member_active(value)?"a":"ina",
-	       node->id, node->uname, node->born, node->last_seen,
+	       node->id, node->born, node->last_seen,
 	       crm_peer_seq, (unsigned long long)*last);
 }
 
@@ -251,13 +244,13 @@ void kick_node_from_cluster(int nodeid)
     }
     
     switch(rc) {
-	case 0:
+	case 1:
 	    log_debug("Requested that node %d be kicked from the cluster", nodeid);
 	    break;
 	case -1:
 	    log_error("Don't know how to kick node %d from the cluster", nodeid);
 	    break;
-	case 1:
+	case 0:
 	    log_error("Could not kick node %d from the cluster", nodeid);
 	    break;
 	default:
@@ -327,6 +320,8 @@ int fence_in_progress(int *in_progress)
 int fence_node_time(int nodeid, uint64_t *last_fenced_time)
 {
     int rc = 0;
+    static time_t last_log = 0;
+
     xmlNode *xpath_data;
     char xpath_query[XPATH_MAX];
     crm_node_t *node = crm_get_peer(nodeid, NULL);
@@ -351,11 +346,21 @@ int fence_node_time(int nodeid, uint64_t
 
     if(xpath_data == NULL) {
 	/* the node has been shot - return 'now' */
-	log_debug("Node %d/%s was last shot 'now'", nodeid, node->uname);	
+	log_level(LOG_INFO, "Node %d/%s was last shot 'now'", nodeid, node->uname);	
 	*last_fenced_time = time(NULL);
+	last_log = 0;
+
+    } else {
+	time_t now = time(NULL);
+	if(last_log == 0) {
+	    log_level(LOG_INFO, "Node %d/%s has not been shot yet", nodeid, node->uname);
+
+	} else if(now - last_log > 30) {
+	    log_level(LOG_DEBUG, "Node %d/%s has still not been shot yet", nodeid, node->uname);
+	}
+	last_log = now;
     }
 
     free_xml(xpath_data);
-    log_debug("It does not appear node %d/%s has been shot", nodeid, node->uname);	
     return 0;
 }