Lines Matching full:free
34 return lprops->free; in get_heap_comp_val()
36 return lprops->free + lprops->dirty; in get_heap_comp_val()
51 * is either the amount of free space or the amount of dirty space, depending
89 * of free space or the amount of dirty space, depending on the category.
408 if (lprops->free == c->leb_size) { in ubifs_categorize_lprops()
413 if (lprops->free + lprops->dirty == c->leb_size) { in ubifs_categorize_lprops()
421 if (lprops->dirty + lprops->free >= c->min_idx_node_sz) in ubifs_categorize_lprops()
425 lprops->dirty > lprops->free) in ubifs_categorize_lprops()
427 if (lprops->free > 0) in ubifs_categorize_lprops()
464 * @spc: amount of free and dirty space in the LEB
467 * has @spc bytes of free and dirty space.
470 * space is called "dark space". For example, if an LEB has only %512 free
513 * @free: new free space amount
518 * This function changes LEB properties (@free, @dirty or @flag). However, the
528 int free, int dirty, int flags, in ubifs_change_lp() argument
537 dbg_lp("LEB %d, free %d, dirty %d, flags %d", in ubifs_change_lp()
538 lprops->lnum, free, dirty, flags); in ubifs_change_lp()
550 ubifs_assert(free == LPROPS_NC || free >= 0); in ubifs_change_lp()
560 ubifs_assert(!(lprops->free & 7) && !(lprops->dirty & 7)); in ubifs_change_lp()
563 if ((lprops->flags & LPROPS_TAKEN) && lprops->free == c->leb_size) in ubifs_change_lp()
569 old_spc = lprops->free + lprops->dirty; in ubifs_change_lp()
578 if (free != LPROPS_NC) { in ubifs_change_lp()
579 free = ALIGN(free, 8); in ubifs_change_lp()
580 c->lst.total_free += free - lprops->free; in ubifs_change_lp()
583 if (free == c->leb_size) { in ubifs_change_lp()
584 if (lprops->free != c->leb_size) in ubifs_change_lp()
586 } else if (lprops->free == c->leb_size) in ubifs_change_lp()
588 lprops->free = free; in ubifs_change_lp()
610 new_spc = lprops->free + lprops->dirty; in ubifs_change_lp()
619 if ((lprops->flags & LPROPS_TAKEN) && lprops->free == c->leb_size) in ubifs_change_lp()
644 * @free: amount of free space
655 int ubifs_change_one_lp(struct ubifs_info *c, int lnum, int free, int dirty, in ubifs_change_one_lp() argument
670 lp = ubifs_change_lp(c, lp, free, dirty, flags, idx_gc_cnt); in ubifs_change_one_lp()
686 * @free: amount of free space
694 int ubifs_update_one_lp(struct ubifs_info *c, int lnum, int free, int dirty, in ubifs_update_one_lp() argument
709 lp = ubifs_change_lp(c, lp, free, lp->dirty + dirty, flags, 0); in ubifs_update_one_lp()
754 * ubifs_fast_find_free - try to find a LEB with free space quickly.
757 * This function returns LEB properties for a LEB with free space or %NULL if
796 ubifs_assert(lprops->free == c->leb_size); in ubifs_fast_find_empty()
819 ubifs_assert(lprops->free + lprops->dirty == c->leb_size); in ubifs_fast_find_freeable()
843 ubifs_assert(lprops->free + lprops->dirty == c->leb_size); in ubifs_fast_find_frdi_idx()
867 if (lprops->free != c->leb_size) { in dbg_check_cats()
868 ubifs_err(c, "non-empty LEB %d on empty list (free %d dirty %d flags %d)", in dbg_check_cats()
869 lprops->lnum, lprops->free, lprops->dirty, in dbg_check_cats()
874 ubifs_err(c, "taken LEB %d on empty list (free %d dirty %d flags %d)", in dbg_check_cats()
875 lprops->lnum, lprops->free, lprops->dirty, in dbg_check_cats()
883 if (lprops->free + lprops->dirty != c->leb_size) { in dbg_check_cats()
884 ubifs_err(c, "non-freeable LEB %d on freeable list (free %d dirty %d flags %d)", in dbg_check_cats()
885 lprops->lnum, lprops->free, lprops->dirty, in dbg_check_cats()
890 ubifs_err(c, "taken LEB %d on freeable list (free %d dirty %d flags %d)", in dbg_check_cats()
891 lprops->lnum, lprops->free, lprops->dirty, in dbg_check_cats()
913 if (lprops->free + lprops->dirty != c->leb_size) { in dbg_check_cats()
914 ubifs_err(c, "non-freeable LEB %d on frdi_idx list (free %d dirty %d flags %d)", in dbg_check_cats()
915 lprops->lnum, lprops->free, lprops->dirty, in dbg_check_cats()
920 ubifs_err(c, "taken LEB %d on frdi_idx list (free %d dirty %d flags %d)", in dbg_check_cats()
921 lprops->lnum, lprops->free, lprops->dirty, in dbg_check_cats()
926 ubifs_err(c, "non-index LEB %d on frdi_idx list (free %d dirty %d flags %d)", in dbg_check_cats()
927 lprops->lnum, lprops->free, lprops->dirty, in dbg_check_cats()
1027 int cat, lnum = lp->lnum, is_idx = 0, used = 0, free, dirty, ret; in scan_check_cb() local
1094 if (lp->free == c->leb_size) { in scan_check_cb()
1100 if (lp->free + lp->dirty == c->leb_size && in scan_check_cb()
1102 lst->total_free += lp->free; in scan_check_cb()
1149 free = c->leb_size - sleb->endpt; in scan_check_cb()
1152 if (free > c->leb_size || free < 0 || dirty > c->leb_size || in scan_check_cb()
1154 ubifs_err(c, "bad calculated accounting for LEB %d: free %d, dirty %d", in scan_check_cb()
1155 lnum, free, dirty); in scan_check_cb()
1159 if (lp->free + lp->dirty == c->leb_size && in scan_check_cb()
1160 free + dirty == c->leb_size) in scan_check_cb()
1162 (!is_idx && free == c->leb_size) || in scan_check_cb()
1163 lp->free == c->leb_size) { in scan_check_cb()
1171 free = lp->free; in scan_check_cb()
1176 if (is_idx && lp->free + lp->dirty == free + dirty && in scan_check_cb()
1180 * amount of free space than the value recorded by lprops. That in scan_check_cb()
1181 * is because the in-the-gaps method may use free space or in scan_check_cb()
1182 * create free space (as a side-effect of using ubi_leb_change in scan_check_cb()
1183 * and not writing the whole LEB). The incorrect free space in scan_check_cb()
1186 * write to the free space at the end of an index LEB - except in scan_check_cb()
1189 free = lp->free; in scan_check_cb()
1193 if (lp->free != free || lp->dirty != dirty) in scan_check_cb()
1197 if (free == c->leb_size) in scan_check_cb()
1198 /* Free but not unmapped LEB, it's fine */ in scan_check_cb()
1211 if (free == c->leb_size) in scan_check_cb()
1218 lst->total_used += c->leb_size - free - dirty; in scan_check_cb()
1219 lst->total_free += free; in scan_check_cb()
1223 int spc = free + dirty; in scan_check_cb()
1236 ubifs_err(c, "bad accounting of LEB %d: free %d, dirty %d flags %#x, should be free %d, dirty %d", in scan_check_cb()
1237 lnum, lp->free, lp->dirty, lp->flags, free, dirty); in scan_check_cb()