Lines Matching refs:free
45 wl_tree_add(e, &ubi->free); in return_unused_peb()
79 if (!ubi->free.rb_node) in ubi_wl_get_fm_peb()
83 e = find_anchor_wl_entry(&ubi->free); in ubi_wl_get_fm_peb()
85 e = find_mean_wl_entry(ubi, &ubi->free); in ubi_wl_get_fm_peb()
90 self_check_in_wl_tree(ubi, e, &ubi->free); in ubi_wl_get_fm_peb()
94 rb_erase(&e->u.rb, &ubi->free); in ubi_wl_get_fm_peb()
112 int free, expect_free, executed; in wait_free_pebs_for_pool() local
125 free = ubi->free_count; in wait_free_pebs_for_pool()
126 free += pool->size - pool->used + wl_pool->size - wl_pool->used; in wait_free_pebs_for_pool()
137 } while (free < expect_free); in wait_free_pebs_for_pool()
151 if (!ubi->free.rb_node) in left_free_count()
168 static int can_fill_pools(struct ubi_device *ubi, int free) in can_fill_pools() argument
175 if (free - pool_need < 1) in can_fill_pools()
208 wl_tree_add(ubi->fm_anchor, &ubi->free); in ubi_refill_pools_and_lock()
241 e = find_wl_entry(ubi, &ubi->free, WL_FREE_MAX_DIFF, in ubi_refill_pools_and_lock()
243 self_check_in_wl_tree(ubi, e, &ubi->free); in ubi_refill_pools_and_lock()
244 rb_erase(&e->u.rb, &ubi->free); in ubi_refill_pools_and_lock()
275 while (!ubi->free.rb_node && ubi->works_count) { in produce_free_peb()
380 if (!ubi->free.rb_node) in need_wear_leveling()
382 e = find_wl_entry(ubi, &ubi->free, WL_FREE_MAX_DIFF, 0); in need_wear_leveling()
386 if (ubi->free.rb_node) { in need_wear_leveling()
387 e = find_wl_entry(ubi, &ubi->free, WL_FREE_MAX_DIFF, 0); in need_wear_leveling()