diff options
| author | Allan Stephens <allan.stephens@windriver.com> | 2012-04-17 18:16:34 -0400 |
|---|---|---|
| committer | Paul Gortmaker <paul.gortmaker@windriver.com> | 2012-04-19 15:46:40 -0400 |
| commit | d4f5c12cdf43ce70731d5abfb6400bfb1be392d3 (patch) | |
| tree | 8ce57140f3bd5eb0a11937eb1f9f0640ce33549c /net/tipc | |
| parent | 336ebf5bf524e447227cb1d785b22ca722e6afa7 (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.c | 8 |
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 | } |
