瀏覽代碼

Tweak nodeid warning

Nodeid warning now appears only when both totem.nodeid and nodelist
nodeid exists. When nodelist nodeid is not defined, totem.nodeid is
used.

Signed-off-by: Jan Friesse <jfriesse@redhat.com>
Reviewed-by: Steven Dake <sdake@redhat.com>
Jan Friesse 14 年之前
父節點
當前提交
c30c088597
共有 3 個文件被更改,包括 10 次插入12 次删除
  1. 2 2
      exec/main.c
  2. 7 9
      exec/totemconfig.c
  3. 1 1
      exec/totemconfig.h

+ 2 - 2
exec/main.c

@@ -1174,8 +1174,8 @@ int main (int argc, char **argv, char **envp)
 		log_printf (LOGSYS_LEVEL_WARNING, "member section is deprecated.");
 	}
 
-	if (totem_config_warnings & TOTEM_CONFIG_WARNING_NODEID_IGNORED) {
-		log_printf (LOGSYS_LEVEL_WARNING, "nodeid in totem section is deprecated and ignored.");
+	if (totem_config_warnings & TOTEM_CONFIG_WARNING_TOTEM_NODEID_IGNORED) {
+		log_printf (LOGSYS_LEVEL_WARNING, "nodeid appears both in totem section and nodelist. Nodelist one is used.");
 	}
 
 	if (totem_config_warnings != 0) {

+ 7 - 9
exec/totemconfig.c

@@ -413,10 +413,10 @@ extern int totem_config_read (
 	char tmp_key[ICMAP_KEYNAME_MAXLEN];
 	uint8_t u8;
 	uint16_t u16;
-	uint32_t u32;
 	char *cluster_name = NULL;
 	int i;
 	int local_node_pos;
+	int nodeid_set;
 
 	*warnings = 0;
 
@@ -455,13 +455,7 @@ extern int totem_config_read (
 		free(str);
 	}
 
-	/*
-	 * Get interface node id. This is now deprecated, so set warning
-	 * flag if item exists.
-	 */
-	if (icmap_get_uint32("totem.nodeid", &u32) == CS_OK) {
-		*warnings |= TOTEM_CONFIG_WARNING_NODEID_IGNORED;
-	}
+	icmap_get_uint32("totem.nodeid", &totem_config->node_id);
 
 	totem_config->clear_node_high_bit = 0;
 	if (icmap_get_string("totem.clear_node_high_bit", &str) == CS_OK) {
@@ -637,7 +631,11 @@ extern int totem_config_read (
 			icmap_set_uint32("nodelist.local_node_pos", local_node_pos);
 
 			snprintf(tmp_key, ICMAP_KEYNAME_MAXLEN, "nodelist.node.%u.nodeid", local_node_pos);
-			icmap_get_uint32(tmp_key, &totem_config->node_id);
+
+			nodeid_set = (totem_config->node_id != 0);
+			if (icmap_get_uint32(tmp_key, &totem_config->node_id) == CS_OK && nodeid_set) {
+				*warnings |= TOTEM_CONFIG_WARNING_TOTEM_NODEID_IGNORED;
+			}
 
 			/*
 			 * Make localnode ring0_addr read only, so we can be sure that local

+ 1 - 1
exec/totemconfig.h

@@ -45,7 +45,7 @@
 
 #define TOTEM_CONFIG_WARNING_MEMBERS_IGNORED		(1<<1)
 #define TOTEM_CONFIG_WARNING_MEMBERS_DEPRECATED		(1<<2)
-#define TOTEM_CONFIG_WARNING_NODEID_IGNORED		(1<<3)
+#define TOTEM_CONFIG_WARNING_TOTEM_NODEID_IGNORED	(1<<3)
 
 extern int totem_config_read (
 	struct totem_config *totem_config,