Skip to contentSkip to conversation

dlm: don't add duplicate node addresses

PATCH In review David Teigland 1 participant 1 message Jun 2, 2005

lore
Share & tools
lore
#0 lore raw

PATCH 2/9 dlm: don't add duplicate node addresses

If an address has already been set for a node, don't add it again.

drivers/dlm/lowcomms.c +9 -0
Index: linux/drivers/dlm/lowcomms.c
===================================================================
@@ -272,6 +272,7 @@
 int dlm_set_local(int nodeid, int weight, char *addr_buf)
 {
 	struct sockaddr_storage *addr;
+	int i;
 
 	if (local_count > DLM_MAX_ADDR_COUNT - 1) {
 		log_print("too many local addresses set %d", local_count);
@@ -284,7 +285,15 @@
 	if (!addr)
 		return -ENOMEM;
 	memcpy(addr, addr_buf, sizeof(*addr));
+
+	for (i = 0; i < local_count; i++) {
+		if (!memcmp(local_addr[i], addr, sizeof(*addr))) {
+			kfree(addr);
+			goto out;
+		}
+	}
 	local_addr[local_count++] = addr;
+ out:
 	return 0;
 }
 

--