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.c13
1 files changed, 6 insertions, 7 deletions
diff --git a/net/tipc/node.c b/net/tipc/node.c
index 3e4f04897c03..f3d522c2881a 100644
--- a/net/tipc/node.c
+++ b/net/tipc/node.c
@@ -394,18 +394,17 @@ static void node_lost_contact(struct tipc_node *n_ptr)
394 n_ptr->bclink.recv_permitted = false; 394 n_ptr->bclink.recv_permitted = false;
395 } 395 }
396 396
397 /* Abort link changeover */ 397 /* Abort any ongoing link failover */
398 for (i = 0; i < MAX_BEARERS; i++) { 398 for (i = 0; i < MAX_BEARERS; i++) {
399 struct tipc_link *l_ptr = n_ptr->links[i]; 399 struct tipc_link *l_ptr = n_ptr->links[i];
400 if (!l_ptr) 400 if (!l_ptr)
401 continue; 401 continue;
402 l_ptr->reset_checkpoint = l_ptr->next_in_no; 402 l_ptr->flags &= ~LINK_FAILINGOVER;
403 l_ptr->exp_msg_count = 0; 403 l_ptr->failover_checkpt = 0;
404 l_ptr->failover_pkts = 0;
405 kfree_skb(l_ptr->failover_skb);
406 l_ptr->failover_skb = NULL;
404 tipc_link_reset_fragments(l_ptr); 407 tipc_link_reset_fragments(l_ptr);
405
406 /* Link marked for deletion after failover? => do it now */
407 if (l_ptr->flags & LINK_STOPPED)
408 tipc_link_delete(l_ptr);
409 } 408 }
410 409
411 n_ptr->action_flags &= ~TIPC_WAIT_OWN_LINKS_DOWN; 410 n_ptr->action_flags &= ~TIPC_WAIT_OWN_LINKS_DOWN;