• Home
  • History
  • Annotate
  • Raw
  • Download
  • only in /netgear-R7000-V1.0.7.12_1.2.5/components/opensource/linux/linux-2.6.36/fs/ubifs/

Lines Matching defs:lprops

25  * garbage collection. In general, lprops category heaps and lists are used
49 * @lprops: LEB properties
54 static int valuable(struct ubifs_info *c, const struct ubifs_lprops *lprops)
56 int n, cat = lprops->flags & LPROPS_CAT_MASK;
66 if (lprops->free + lprops->dirty >= c->dark_wm)
86 * @lprops: LEB properties to scan
96 const struct ubifs_lprops *lprops, int in_tree,
102 if (lprops->flags & LPROPS_TAKEN)
105 if (!in_tree && valuable(c, lprops))
108 if (lprops->free + lprops->dirty < data->min_space)
111 if (data->exclude_index && lprops->flags & LPROPS_INDEX)
114 if (lprops->free + lprops->dirty == c->leb_size) {
118 } else if (lprops->dirty < c->dead_wm)
121 data->lnum = lprops->lnum;
140 const struct ubifs_lprops *lprops;
148 lprops = heap->arr[i];
149 if (lprops->free + lprops->dirty < min_space)
151 if (lprops->dirty < c->dead_wm)
153 return lprops;
162 list_for_each_entry(lprops, &c->uncat_list, list) {
163 if (lprops->flags & LPROPS_TAKEN)
165 if (lprops->free + lprops->dirty < min_space)
167 if (exclude_index && (lprops->flags & LPROPS_INDEX))
169 if (lprops->dirty < c->dead_wm)
171 return lprops;
188 lprops = ubifs_lpt_lookup_dirty(c, data.lnum);
189 if (IS_ERR(lprops))
190 return lprops;
191 ubifs_assert(lprops->lnum == data.lnum);
192 ubifs_assert(lprops->free + lprops->dirty >= min_space);
193 ubifs_assert(lprops->dirty >= c->dead_wm ||
195 lprops->free + lprops->dirty == c->leb_size));
196 ubifs_assert(!(lprops->flags & LPROPS_TAKEN));
197 ubifs_assert(!exclude_index || !(lprops->flags & LPROPS_INDEX));
198 return lprops;
353 * @lprops: LEB properties to scan
363 const struct ubifs_lprops *lprops, int in_tree,
369 if (lprops->flags & LPROPS_TAKEN)
372 if (!in_tree && valuable(c, lprops))
375 if (lprops->flags & LPROPS_INDEX)
378 if (lprops->free < data->min_space)
381 if (!data->pick_free && lprops->free == c->leb_size)
389 if (lprops->free + lprops->dirty == c->leb_size && lprops->dirty > 0)
392 data->lnum = lprops->lnum;
411 const struct ubifs_lprops *lprops;
417 lprops = ubifs_fast_find_free(c);
418 if (lprops && lprops->free >= min_space)
419 return lprops;
422 lprops = ubifs_fast_find_empty(c);
423 if (lprops)
424 return lprops;
427 lprops = ubifs_fast_find_free(c);
428 if (lprops && lprops->free >= min_space)
429 return lprops;
434 lprops = heap->arr[i];
435 if (lprops->free >= min_space)
436 return lprops;
445 list_for_each_entry(lprops, &c->uncat_list, list) {
446 if (lprops->flags & LPROPS_TAKEN)
448 if (lprops->flags & LPROPS_INDEX)
450 if (lprops->free >= min_space)
451 return lprops;
467 lprops = ubifs_lpt_lookup_dirty(c, data.lnum);
468 if (IS_ERR(lprops))
469 return lprops;
470 ubifs_assert(lprops->lnum == data.lnum);
471 ubifs_assert(lprops->free >= min_space);
472 ubifs_assert(!(lprops->flags & LPROPS_TAKEN));
473 ubifs_assert(!(lprops->flags & LPROPS_INDEX));
474 return lprops;
496 const struct ubifs_lprops *lprops;
521 * result of this is that lprops also decreases
530 * budgeting and lprops subsystems. We could make the
540 lprops = do_find_free_space(c, min_space, pick_free, squeeze);
541 if (IS_ERR(lprops)) {
542 err = PTR_ERR(lprops);
546 lnum = lprops->lnum;
547 flags = lprops->flags | LPROPS_TAKEN;
549 lprops = ubifs_change_lp(c, lprops, LPROPS_NC, LPROPS_NC, flags, 0);
550 if (IS_ERR(lprops)) {
551 err = PTR_ERR(lprops);
561 *offs = c->leb_size - lprops->free;
593 * @lprops: LEB properties to scan
603 const struct ubifs_lprops *lprops, int in_tree,
609 if (lprops->flags & LPROPS_TAKEN)
612 if (!in_tree && valuable(c, lprops))
615 if (lprops->flags & LPROPS_INDEX)
618 if (lprops->free + lprops->dirty != c->leb_size)
625 data->lnum = lprops->lnum;
635 struct ubifs_lprops *lprops;
647 lprops = ubifs_lpt_lookup_dirty(c, data.lnum);
648 if (IS_ERR(lprops))
649 return lprops;
650 ubifs_assert(lprops->lnum == data.lnum);
651 ubifs_assert(lprops->free + lprops->dirty == c->leb_size);
652 ubifs_assert(!(lprops->flags & LPROPS_TAKEN));
653 ubifs_assert(!(lprops->flags & LPROPS_INDEX));
654 return lprops;
675 const struct ubifs_lprops *lprops;
680 lprops = ubifs_fast_find_empty(c);
681 if (!lprops) {
682 lprops = ubifs_fast_find_freeable(c);
683 if (!lprops) {
686 lprops = scan_for_leb_for_idx(c);
687 if (IS_ERR(lprops)) {
688 err = PTR_ERR(lprops);
695 if (!lprops) {
700 lnum = lprops->lnum;
703 lnum, lprops->free, lprops->dirty, lprops->flags);
705 flags = lprops->flags | LPROPS_TAKEN | LPROPS_INDEX;
706 lprops = ubifs_change_lp(c, lprops, c->leb_size, 0, flags, 0);
707 if (IS_ERR(lprops)) {
708 err = PTR_ERR(lprops);
778 /* Replace the lprops pointers with LEB numbers */
788 * @lprops: LEB properties to scan
798 const struct ubifs_lprops *lprops, int in_tree,
804 if (lprops->flags & LPROPS_TAKEN)
807 if (!in_tree && valuable(c, lprops))
810 if (!(lprops->flags & LPROPS_INDEX))
813 if (lprops->free + lprops->dirty < c->min_idx_node_sz)
816 data->lnum = lprops->lnum;
832 const struct ubifs_lprops *lprops;
841 lprops = heap->arr[i];
842 ret = scan_dirty_idx_cb(c, lprops, 1, &data);
846 list_for_each_entry(lprops, &c->frdi_idx_list, list) {
847 ret = scan_dirty_idx_cb(c, lprops, 1, &data);
851 list_for_each_entry(lprops, &c->uncat_list, list) {
852 ret = scan_dirty_idx_cb(c, lprops, 1, &data);
867 lprops = ubifs_lpt_lookup_dirty(c, data.lnum);
868 if (IS_ERR(lprops))
869 return PTR_ERR(lprops);
870 ubifs_assert(lprops->lnum == data.lnum);
871 ubifs_assert(lprops->free + lprops->dirty >= c->min_idx_node_sz);
872 ubifs_assert(!(lprops->flags & LPROPS_TAKEN));
873 ubifs_assert((lprops->flags & LPROPS_INDEX));
876 lprops->lnum, lprops->free, lprops->dirty, lprops->flags);
878 lprops = ubifs_change_lp(c, lprops, LPROPS_NC, LPROPS_NC,
879 lprops->flags | LPROPS_TAKEN, 0);
880 if (IS_ERR(lprops))
881 return PTR_ERR(lprops);
883 return lprops->lnum;
927 /* The lprops pointers were replaced by LEB numbers */