aboutsummaryrefslogtreecommitdiffstats
path: root/net/tipc/node.c
diff options
context:
space:
mode:
Diffstat (limited to 'net/tipc/node.c')
-rw-r--r--net/tipc/node.c32
1 files changed, 18 insertions, 14 deletions
diff --git a/net/tipc/node.c b/net/tipc/node.c
index 2d106ef4fa4c..810b39545264 100644
--- a/net/tipc/node.c
+++ b/net/tipc/node.c
@@ -331,28 +331,32 @@ static void node_lost_contact(struct tipc_node *n_ptr)
331 char addr_string[16]; 331 char addr_string[16];
332 u32 i; 332 u32 i;
333 333
334 /* Clean up broadcast reception remains */ 334 info("Lost contact with %s\n",
335 n_ptr->bclink.gap_after = n_ptr->bclink.gap_to = 0; 335 tipc_addr_string_fill(addr_string, n_ptr->addr));
336 while (n_ptr->bclink.deferred_head) { 336
337 struct sk_buff *buf = n_ptr->bclink.deferred_head; 337 /* Flush broadcast link info associated with lost node */
338 n_ptr->bclink.deferred_head = buf->next;
339 buf_discard(buf);
340 }
341 if (n_ptr->bclink.defragm) {
342 buf_discard(n_ptr->bclink.defragm);
343 n_ptr->bclink.defragm = NULL;
344 }
345 338
346 if (n_ptr->bclink.supported) { 339 if (n_ptr->bclink.supported) {
340 n_ptr->bclink.gap_after = n_ptr->bclink.gap_to = 0;
341 while (n_ptr->bclink.deferred_head) {
342 struct sk_buff *buf = n_ptr->bclink.deferred_head;
343 n_ptr->bclink.deferred_head = buf->next;
344 buf_discard(buf);
345 }
346
347 if (n_ptr->bclink.defragm) {
348 buf_discard(n_ptr->bclink.defragm);
349 n_ptr->bclink.defragm = NULL;
350 }
351
347 tipc_bclink_acknowledge(n_ptr, 352 tipc_bclink_acknowledge(n_ptr,
348 mod(n_ptr->bclink.acked + 10000)); 353 mod(n_ptr->bclink.acked + 10000));
349 tipc_nmap_remove(&tipc_bcast_nmap, n_ptr->addr); 354 tipc_nmap_remove(&tipc_bcast_nmap, n_ptr->addr);
350 if (n_ptr->addr < tipc_own_addr) 355 if (n_ptr->addr < tipc_own_addr)
351 tipc_own_tag--; 356 tipc_own_tag--;
352 }
353 357
354 info("Lost contact with %s\n", 358 n_ptr->bclink.supported = 0;
355 tipc_addr_string_fill(addr_string, n_ptr->addr)); 359 }
356 360
357 /* Abort link changeover */ 361 /* Abort link changeover */
358 for (i = 0; i < MAX_BEARERS; i++) { 362 for (i = 0; i < MAX_BEARERS; i++) {