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.c7
1 files changed, 5 insertions, 2 deletions
diff --git a/net/tipc/node.c b/net/tipc/node.c
index 5f097547d3e3..ce9678efa98a 100644
--- a/net/tipc/node.c
+++ b/net/tipc/node.c
@@ -125,6 +125,8 @@ void tipc_node_link_up(struct node *n_ptr, struct link *l_ptr)
125{ 125{
126 struct link **active = &n_ptr->active_links[0]; 126 struct link **active = &n_ptr->active_links[0];
127 127
128 n_ptr->working_links++;
129
128 info("Established link <%s> on network plane %c\n", 130 info("Established link <%s> on network plane %c\n",
129 l_ptr->name, l_ptr->b_ptr->net_plane); 131 l_ptr->name, l_ptr->b_ptr->net_plane);
130 132
@@ -185,6 +187,8 @@ void tipc_node_link_down(struct node *n_ptr, struct link *l_ptr)
185{ 187{
186 struct link **active; 188 struct link **active;
187 189
190 n_ptr->working_links--;
191
188 if (!tipc_link_is_active(l_ptr)) { 192 if (!tipc_link_is_active(l_ptr)) {
189 info("Lost standby link <%s> on network plane %c\n", 193 info("Lost standby link <%s> on network plane %c\n",
190 l_ptr->name, l_ptr->b_ptr->net_plane); 194 l_ptr->name, l_ptr->b_ptr->net_plane);
@@ -214,8 +218,7 @@ int tipc_node_has_active_links(struct node *n_ptr)
214 218
215int tipc_node_has_redundant_links(struct node *n_ptr) 219int tipc_node_has_redundant_links(struct node *n_ptr)
216{ 220{
217 return (tipc_node_has_active_links(n_ptr) && 221 return (n_ptr->working_links > 1);
218 (n_ptr->active_links[0] != n_ptr->active_links[1]));
219} 222}
220 223
221static int tipc_node_has_active_routes(struct node *n_ptr) 224static int tipc_node_has_active_routes(struct node *n_ptr)