diff options
Diffstat (limited to 'net/tipc/bearer.c')
-rw-r--r-- | net/tipc/bearer.c | 8 |
1 files changed, 3 insertions, 5 deletions
diff --git a/net/tipc/bearer.c b/net/tipc/bearer.c index 85eba9c08ee9..e2202de3d93e 100644 --- a/net/tipc/bearer.c +++ b/net/tipc/bearer.c | |||
@@ -385,13 +385,9 @@ static int bearer_push(struct tipc_bearer *b_ptr) | |||
385 | 385 | ||
386 | void tipc_bearer_lock_push(struct tipc_bearer *b_ptr) | 386 | void tipc_bearer_lock_push(struct tipc_bearer *b_ptr) |
387 | { | 387 | { |
388 | int res; | ||
389 | |||
390 | spin_lock_bh(&b_ptr->lock); | 388 | spin_lock_bh(&b_ptr->lock); |
391 | res = bearer_push(b_ptr); | 389 | bearer_push(b_ptr); |
392 | spin_unlock_bh(&b_ptr->lock); | 390 | spin_unlock_bh(&b_ptr->lock); |
393 | if (res) | ||
394 | tipc_bcbearer_push(); | ||
395 | } | 391 | } |
396 | 392 | ||
397 | 393 | ||
@@ -608,6 +604,7 @@ int tipc_block_bearer(const char *name) | |||
608 | info("Blocking bearer <%s>\n", name); | 604 | info("Blocking bearer <%s>\n", name); |
609 | spin_lock_bh(&b_ptr->lock); | 605 | spin_lock_bh(&b_ptr->lock); |
610 | b_ptr->blocked = 1; | 606 | b_ptr->blocked = 1; |
607 | list_splice_init(&b_ptr->cong_links, &b_ptr->links); | ||
611 | list_for_each_entry_safe(l_ptr, temp_l_ptr, &b_ptr->links, link_list) { | 608 | list_for_each_entry_safe(l_ptr, temp_l_ptr, &b_ptr->links, link_list) { |
612 | struct tipc_node *n_ptr = l_ptr->owner; | 609 | struct tipc_node *n_ptr = l_ptr->owner; |
613 | 610 | ||
@@ -635,6 +632,7 @@ static void bearer_disable(struct tipc_bearer *b_ptr) | |||
635 | spin_lock_bh(&b_ptr->lock); | 632 | spin_lock_bh(&b_ptr->lock); |
636 | b_ptr->blocked = 1; | 633 | b_ptr->blocked = 1; |
637 | b_ptr->media->disable_bearer(b_ptr); | 634 | b_ptr->media->disable_bearer(b_ptr); |
635 | list_splice_init(&b_ptr->cong_links, &b_ptr->links); | ||
638 | list_for_each_entry_safe(l_ptr, temp_l_ptr, &b_ptr->links, link_list) { | 636 | list_for_each_entry_safe(l_ptr, temp_l_ptr, &b_ptr->links, link_list) { |
639 | tipc_link_delete(l_ptr); | 637 | tipc_link_delete(l_ptr); |
640 | } | 638 | } |