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 85eba9c08ee..e2202de3d93 100644 --- a/net/tipc/bearer.c +++ b/net/tipc/bearer.c @@ -385,13 +385,9 @@ static int bearer_push(struct tipc_bearer *b_ptr)  void tipc_bearer_lock_push(struct tipc_bearer *b_ptr)  { -	int res; -  	spin_lock_bh(&b_ptr->lock); -	res = bearer_push(b_ptr); +	bearer_push(b_ptr);  	spin_unlock_bh(&b_ptr->lock); -	if (res) -		tipc_bcbearer_push();  } @@ -608,6 +604,7 @@ int tipc_block_bearer(const char *name)  	info("Blocking bearer <%s>\n", name);  	spin_lock_bh(&b_ptr->lock);  	b_ptr->blocked = 1; +	list_splice_init(&b_ptr->cong_links, &b_ptr->links);  	list_for_each_entry_safe(l_ptr, temp_l_ptr, &b_ptr->links, link_list) {  		struct tipc_node *n_ptr = l_ptr->owner; @@ -635,6 +632,7 @@ static void bearer_disable(struct tipc_bearer *b_ptr)  	spin_lock_bh(&b_ptr->lock);  	b_ptr->blocked = 1;  	b_ptr->media->disable_bearer(b_ptr); +	list_splice_init(&b_ptr->cong_links, &b_ptr->links);  	list_for_each_entry_safe(l_ptr, temp_l_ptr, &b_ptr->links, link_list) {  		tipc_link_delete(l_ptr);  	} | 
