/* bearer_push(): Resolve bearer congestion. Force the waiting links to push out their unsent packets, one packet per link per iteration, until all packets are gone or congestion reoccurs. 'tipc_net_lock' is read_locked when this function is called bearer.lock must be taken before calling Returns binary true(1) ore false(0)  */
static int bearer_push(struct bearer *b_ptr)
/* bearer_push(): Resolve bearer congestion. Force the waiting links to push out their unsent packets, one packet per link per iteration, until all packets are gone or congestion reoccurs. 'tipc_net_lock' is read_locked when this function is called bearer.lock must be taken before calling Returns binary true(1) ore false(0)  */
static int bearer_push(struct bearer *b_ptr)
{
	u32 res = 0;
	struct link *ln, *tln;
	if (b_ptr->publ.blocked)
		return 0;
	while (!list_empty(&b_ptr->cong_links) && (res != PUSH_FAILED)) {
		list_for_each_entry_safe(ln, tln, &b_ptr->cong_links, link_list) {
			res = tipc_link_push_packet(ln);
			if (res == PUSH_FAILED)
				break;
			if (res == PUSH_FINISHED)
				list_move_tail(&ln->link_list, &b_ptr->links);
		}
	}
	return list_empty(&b_ptr->cong_links);
}