diff options
Diffstat (limited to 'net/tipc/node.c')
-rw-r--r-- | net/tipc/node.c | 14 |
1 files changed, 10 insertions, 4 deletions
diff --git a/net/tipc/node.c b/net/tipc/node.c index efe4d41bf11b..0b0f6c7da965 100644 --- a/net/tipc/node.c +++ b/net/tipc/node.c | |||
@@ -162,7 +162,7 @@ void tipc_node_link_up(struct tipc_node *n_ptr, struct tipc_link *l_ptr) | |||
162 | pr_info("New link <%s> becomes standby\n", l_ptr->name); | 162 | pr_info("New link <%s> becomes standby\n", l_ptr->name); |
163 | return; | 163 | return; |
164 | } | 164 | } |
165 | tipc_link_dup_send_queue(active[0], l_ptr); | 165 | tipc_link_dup_queue_xmit(active[0], l_ptr); |
166 | if (l_ptr->priority == active[0]->priority) { | 166 | if (l_ptr->priority == active[0]->priority) { |
167 | active[0] = l_ptr; | 167 | active[0] = l_ptr; |
168 | return; | 168 | return; |
@@ -249,9 +249,15 @@ void tipc_node_attach_link(struct tipc_node *n_ptr, struct tipc_link *l_ptr) | |||
249 | 249 | ||
250 | void tipc_node_detach_link(struct tipc_node *n_ptr, struct tipc_link *l_ptr) | 250 | void tipc_node_detach_link(struct tipc_node *n_ptr, struct tipc_link *l_ptr) |
251 | { | 251 | { |
252 | n_ptr->links[l_ptr->b_ptr->identity] = NULL; | 252 | int i; |
253 | atomic_dec(&tipc_num_links); | 253 | |
254 | n_ptr->link_cnt--; | 254 | for (i = 0; i < MAX_BEARERS; i++) { |
255 | if (l_ptr != n_ptr->links[i]) | ||
256 | continue; | ||
257 | n_ptr->links[i] = NULL; | ||
258 | atomic_dec(&tipc_num_links); | ||
259 | n_ptr->link_cnt--; | ||
260 | } | ||
255 | } | 261 | } |
256 | 262 | ||
257 | static void node_established_contact(struct tipc_node *n_ptr) | 263 | static void node_established_contact(struct tipc_node *n_ptr) |