aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--net/tipc/link.h1
-rw-r--r--net/tipc/node.c4
2 files changed, 5 insertions, 0 deletions
diff --git a/net/tipc/link.h b/net/tipc/link.h
index f06b779c9f75..3e3432b3044e 100644
--- a/net/tipc/link.h
+++ b/net/tipc/link.h
@@ -202,6 +202,7 @@ struct tipc_port;
202struct tipc_link *tipc_link_create(struct tipc_node *n_ptr, 202struct tipc_link *tipc_link_create(struct tipc_node *n_ptr,
203 struct tipc_bearer *b_ptr, 203 struct tipc_bearer *b_ptr,
204 const struct tipc_media_addr *media_addr); 204 const struct tipc_media_addr *media_addr);
205void tipc_link_delete(struct tipc_link *link);
205void tipc_link_delete_list(struct net *net, unsigned int bearer_id, 206void tipc_link_delete_list(struct net *net, unsigned int bearer_id,
206 bool shutting_down); 207 bool shutting_down);
207void tipc_link_failover_send_queue(struct tipc_link *l_ptr); 208void tipc_link_failover_send_queue(struct tipc_link *l_ptr);
diff --git a/net/tipc/node.c b/net/tipc/node.c
index ee5d33cfcf80..d4cb8c127063 100644
--- a/net/tipc/node.c
+++ b/net/tipc/node.c
@@ -406,6 +406,10 @@ static void node_lost_contact(struct tipc_node *n_ptr)
406 l_ptr->reset_checkpoint = l_ptr->next_in_no; 406 l_ptr->reset_checkpoint = l_ptr->next_in_no;
407 l_ptr->exp_msg_count = 0; 407 l_ptr->exp_msg_count = 0;
408 tipc_link_reset_fragments(l_ptr); 408 tipc_link_reset_fragments(l_ptr);
409
410 /* Link marked for deletion after failover? => do it now */
411 if (l_ptr->flags & LINK_STOPPED)
412 tipc_link_delete(l_ptr);
409 } 413 }
410 414
411 n_ptr->action_flags &= ~TIPC_WAIT_OWN_LINKS_DOWN; 415 n_ptr->action_flags &= ~TIPC_WAIT_OWN_LINKS_DOWN;