diff options
Diffstat (limited to 'net/tipc/node.c')
-rw-r--r-- | net/tipc/node.c | 13 |
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; |