dlm: don't add duplicate node addresses
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.
Signed-off-by David Teigland <[email protected]>
drivers/dlm/lowcomms.c +9 -0
@@ -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 ; }
--