aboutsummaryrefslogtreecommitdiffstats
path: root/net/tipc
diff options
context:
space:
mode:
authorAllan Stephens <allan.stephens@windriver.com>2012-04-17 18:16:34 -0400
committerPaul Gortmaker <paul.gortmaker@windriver.com>2012-04-19 15:46:40 -0400
commitd4f5c12cdf43ce70731d5abfb6400bfb1be392d3 (patch)
tree8ce57140f3bd5eb0a11937eb1f9f0640ce33549c /net/tipc
parent336ebf5bf524e447227cb1d785b22ca722e6afa7 (diff)
tipc: Ensure network address change doesn't impact name table updates
Revises routines that add and remove an entry from a node's name table so that the publication scope lists are updated properly even if the node's network address is changed in mid-operation. The routines now recognize the default node address of <0.0.0> as an alias for "this node" even after a new network address has been assigned. Signed-off-by: Allan Stephens <allan.stephens@windriver.com> Signed-off-by: Paul Gortmaker <paul.gortmaker@windriver.com>
Diffstat (limited to 'net/tipc')
-rw-r--r--net/tipc/name_table.c8
1 files changed, 4 insertions, 4 deletions
diff --git a/net/tipc/name_table.c b/net/tipc/name_table.c
index 1e0518da19da..25c2975d86ee 100644
--- a/net/tipc/name_table.c
+++ b/net/tipc/name_table.c
@@ -342,12 +342,12 @@ static struct publication *tipc_nameseq_insert_publ(struct name_seq *nseq,
342 list_add(&publ->zone_list, &info->zone_list); 342 list_add(&publ->zone_list, &info->zone_list);
343 info->zone_list_size++; 343 info->zone_list_size++;
344 344
345 if (in_own_cluster_exact(node)) { 345 if (in_own_cluster(node)) {
346 list_add(&publ->cluster_list, &info->cluster_list); 346 list_add(&publ->cluster_list, &info->cluster_list);
347 info->cluster_list_size++; 347 info->cluster_list_size++;
348 } 348 }
349 349
350 if (node == tipc_own_addr) { 350 if (in_own_node(node)) {
351 list_add(&publ->node_list, &info->node_list); 351 list_add(&publ->node_list, &info->node_list);
352 info->node_list_size++; 352 info->node_list_size++;
353 } 353 }
@@ -411,14 +411,14 @@ found:
411 411
412 /* Remove publication from cluster scope list, if present */ 412 /* Remove publication from cluster scope list, if present */
413 413
414 if (in_own_cluster_exact(node)) { 414 if (in_own_cluster(node)) {
415 list_del(&publ->cluster_list); 415 list_del(&publ->cluster_list);
416 info->cluster_list_size--; 416 info->cluster_list_size--;
417 } 417 }
418 418
419 /* Remove publication from node scope list, if present */ 419 /* Remove publication from node scope list, if present */
420 420
421 if (node == tipc_own_addr) { 421 if (in_own_node(node)) {
422 list_del(&publ->node_list); 422 list_del(&publ->node_list);
423 info->node_list_size--; 423 info->node_list_size--;
424 } 424 }