Lines Matching refs:grp

446  * sure that all the PAs on grp->bb_prealloc_list got freed or if it's empty.
616 struct ext4_group_info *grp, ext4_group_t group)
620 grp->bb_bitmap = kmalloc(sb->s_blocksize, GFP_NOFS);
621 if (!grp->bb_bitmap)
626 kfree(grp->bb_bitmap);
627 grp->bb_bitmap = NULL;
631 memcpy(grp->bb_bitmap, bh->b_data, sb->s_blocksize);
635 static void mb_group_bb_bitmap_free(struct ext4_group_info *grp)
637 kfree(grp->bb_bitmap);
657 struct ext4_group_info *grp, ext4_group_t group)
662 static inline void mb_group_bb_bitmap_free(struct ext4_group_info *grp)
691 struct ext4_group_info *grp;
759 grp = ext4_get_group_info(sb, e4b->bd_group);
760 if (!grp)
762 list_for_each(cur, &grp->bb_prealloc_list) {
787 struct ext4_group_info *grp)
811 grp->bb_counters[min]++;
841 mb_update_avg_fragment_size(struct super_block *sb, struct ext4_group_info *grp)
846 if (!test_opt2(sb, MB_OPTIMIZE_SCAN) || grp->bb_fragments == 0)
850 grp->bb_free / grp->bb_fragments);
851 if (new_order == grp->bb_avg_fragment_size_order)
854 if (grp->bb_avg_fragment_size_order != -1) {
856 grp->bb_avg_fragment_size_order]);
857 list_del(&grp->bb_avg_fragment_size_node);
859 grp->bb_avg_fragment_size_order]);
861 grp->bb_avg_fragment_size_order = new_order;
863 grp->bb_avg_fragment_size_order]);
864 list_add_tail(&grp->bb_avg_fragment_size_node,
865 &sbi->s_mb_avg_fragment_size[grp->bb_avg_fragment_size_order]);
867 grp->bb_avg_fragment_size_order]);
922 struct ext4_group_info *grp = NULL, *iter;
936 grp = iter;
941 return grp;
952 struct ext4_group_info *grp = NULL;
962 grp = ext4_mb_find_good_group_avg_frag_lists(ac, i);
963 if (grp) {
964 *group = grp->bb_group;
997 struct ext4_group_info *grp = NULL;
1058 grp = ext4_mb_find_good_group_avg_frag_lists(ac, frag_order);
1059 if (grp) {
1060 *group = grp->bb_group;
1150 mb_set_largest_free_order(struct super_block *sb, struct ext4_group_info *grp)
1156 if (grp->bb_counters[i] > 0)
1160 i == grp->bb_largest_free_order) {
1161 grp->bb_largest_free_order = i;
1165 if (grp->bb_largest_free_order >= 0) {
1167 grp->bb_largest_free_order]);
1168 list_del_init(&grp->bb_largest_free_order_node);
1170 grp->bb_largest_free_order]);
1172 grp->bb_largest_free_order = i;
1173 if (grp->bb_largest_free_order >= 0 && grp->bb_free) {
1175 grp->bb_largest_free_order]);
1176 list_add_tail(&grp->bb_largest_free_order_node,
1177 &sbi->s_mb_largest_free_orders[grp->bb_largest_free_order]);
1179 grp->bb_largest_free_order]);
1186 struct ext4_group_info *grp)
1200 grp->bb_first_free = i;
1208 ext4_mb_mark_free_simple(sb, buddy, first, len, grp);
1210 grp->bb_counters[0]++;
1214 grp->bb_fragments = fragments;
1216 if (free != grp->bb_free) {
1220 free, grp->bb_free);
1225 grp->bb_free = free;
1229 mb_set_largest_free_order(sb, grp);
1230 mb_update_avg_fragment_size(sb, grp);
1232 clear_bit(EXT4_GROUP_INFO_NEED_INIT_BIT, &(grp->bb_state));
1589 struct ext4_group_info *grp;
1597 grp = ext4_get_group_info(sb, group);
1598 if (!grp)
1602 e4b->bd_info = grp;
1608 if (unlikely(EXT4_MB_GRP_NEED_INIT(grp))) {
2336 struct ext4_group_info *grp = ext4_get_group_info(ac->ac_sb, group);
2339 if (!grp)
2343 if (grp->bb_free == 0)
2402 struct ext4_group_info *grp = e4b->bd_info;
2410 if (grp->bb_counters[i] == 0)
2425 grp->bb_counters[i], i);
2584 struct ext4_group_info *grp = ext4_get_group_info(ac->ac_sb, group);
2588 if (unlikely(!grp || EXT4_MB_GRP_BBITMAP_CORRUPT(grp)))
2591 free = grp->bb_free;
2595 fragments = grp->bb_fragments;
2615 if (grp->bb_largest_free_order < ac->ac_2order)
2651 struct ext4_group_info *grp = ext4_get_group_info(ac->ac_sb, group);
2658 if (!grp)
2666 free = grp->bb_free;
2676 if (unlikely(EXT4_MB_GRP_BBITMAP_CORRUPT(grp)))
2683 /* We only do this if the grp has never been initialized */
2684 if (unlikely(EXT4_MB_GRP_NEED_INIT(grp))) {
2737 struct ext4_group_info *grp = ext4_get_group_info(sb, group);
2746 if (gdp && grp && !EXT4_MB_GRP_TEST_AND_SET_READ(grp) &&
2747 EXT4_MB_GRP_NEED_INIT(grp) &&
2779 struct ext4_group_info *grp;
2786 grp = ext4_get_group_info(sb, group);
2788 if (grp && gdp && EXT4_MB_GRP_NEED_INIT(grp) &&
3229 struct ext4_group_info *grp;
3240 list_for_each_entry(grp, &sbi->s_mb_avg_fragment_size[position],
3256 list_for_each_entry(grp, &sbi->s_mb_largest_free_orders[position],
3472 struct ext4_group_info *grp = ext4_get_group_info(sb, i);
3474 if (grp)
3475 kmem_cache_free(cachep, grp);
3548 ext4_group_t grp, load_grp;
3563 grp = fd->efd_group;
3564 if (grp != load_grp) {
3568 err = ext4_mb_load_buddy(sb, grp, &e4b);
3574 load_grp = grp;
3578 ext4_lock_group(sb, grp);
3581 ext4_unlock_group(sb, grp);
3754 static int ext4_mb_cleanup_pa(struct ext4_group_info *grp)
3760 list_for_each_safe(cur, tmp, &grp->bb_prealloc_list) {
4993 struct ext4_group_info *grp = ext4_get_group_info(sb, group);
5001 if (!grp)
5012 list_for_each(cur, &grp->bb_prealloc_list) {
5071 ext4_group_t grp;
5098 grp = ext4_get_group_number(sb, grp_blk);
5114 ext4_lock_group(sb, grp);
5116 ext4_unlock_group(sb, grp);
5165 struct ext4_group_info *grp;
5241 grp = ext4_get_group_info(sb, ac->ac_b_ex.fe_group);
5242 if (!grp)
5248 list_add(&pa->pa_group_list, &grp->bb_prealloc_list);
5265 struct ext4_group_info *grp;
5292 grp = ext4_get_group_info(sb, ac->ac_b_ex.fe_group);
5293 if (!grp)
5301 list_add(&pa->pa_group_list, &grp->bb_prealloc_list);
5411 struct ext4_group_info *grp = ext4_get_group_info(sb, group);
5420 if (!grp)
5423 if (list_empty(&grp->bb_prealloc_list))
5445 &grp->bb_prealloc_list, pa_group_list) {
5503 free, group, grp->bb_free);
5647 * been added to grp->bb_prealloc_list. So we don't need to lock it
5664 struct ext4_group_info *grp = ext4_get_group_info(sb, i);
5669 if (!grp)
5672 list_for_each(cur, &grp->bb_prealloc_list) {
5683 mb_debug(sb, "%u: %d/%d\n", i, grp->bb_free,
5684 grp->bb_fragments);
6221 * pa allocated above is added to grp->bb_prealloc_list only
6408 struct ext4_group_info *grp;
6434 grp = ext4_get_group_info(sb, block_group);
6435 if (unlikely(!grp || EXT4_MB_GRP_BBITMAP_CORRUPT(grp)))
6770 ext4_group_t grp)
6774 if (grp < (ext4_get_groups_count(sb) - 1))
6778 ext4_group_first_block_no(sb, grp))
6911 struct ext4_group_info *grp;
6955 grp = ext4_get_group_info(sb, group);
6956 if (!grp)
6958 /* We only do this if the grp has never been initialized */
6959 if (unlikely(EXT4_MB_GRP_NEED_INIT(grp))) {
6973 if (grp->bb_free >= minlen) {