Lines Matching defs:grp
445 * sure that all the PAs on grp->bb_prealloc_list got freed or if it's empty.
615 struct ext4_group_info *grp, ext4_group_t group)
619 grp->bb_bitmap = kmalloc(sb->s_blocksize, GFP_NOFS);
620 if (!grp->bb_bitmap)
625 kfree(grp->bb_bitmap);
626 grp->bb_bitmap = NULL;
630 memcpy(grp->bb_bitmap, bh->b_data, sb->s_blocksize);
634 static void mb_group_bb_bitmap_free(struct ext4_group_info *grp)
636 kfree(grp->bb_bitmap);
656 struct ext4_group_info *grp, ext4_group_t group)
661 static inline void mb_group_bb_bitmap_free(struct ext4_group_info *grp)
690 struct ext4_group_info *grp;
758 grp = ext4_get_group_info(sb, e4b->bd_group);
759 if (!grp)
761 list_for_each(cur, &grp->bb_prealloc_list) {
787 struct ext4_group_info *grp)
811 grp->bb_counters[min]++;
839 mb_update_avg_fragment_size(struct super_block *sb, struct ext4_group_info *grp)
844 if (!test_opt2(sb, MB_OPTIMIZE_SCAN) || grp->bb_fragments == 0)
848 grp->bb_free / grp->bb_fragments);
849 if (new_order == grp->bb_avg_fragment_size_order)
852 if (grp->bb_avg_fragment_size_order != -1) {
854 grp->bb_avg_fragment_size_order]);
855 list_del(&grp->bb_avg_fragment_size_node);
857 grp->bb_avg_fragment_size_order]);
859 grp->bb_avg_fragment_size_order = new_order;
861 grp->bb_avg_fragment_size_order]);
862 list_add_tail(&grp->bb_avg_fragment_size_node,
863 &sbi->s_mb_avg_fragment_size[grp->bb_avg_fragment_size_order]);
865 grp->bb_avg_fragment_size_order]);
920 struct ext4_group_info *grp = NULL, *iter;
934 grp = iter;
939 return grp;
950 struct ext4_group_info *grp = NULL;
960 grp = ext4_mb_find_good_group_avg_frag_lists(ac, i);
961 if (grp) {
962 *group = grp->bb_group;
995 struct ext4_group_info *grp = NULL;
1054 grp = ext4_mb_find_good_group_avg_frag_lists(ac, frag_order);
1055 if (grp) {
1056 *group = grp->bb_group;
1146 mb_set_largest_free_order(struct super_block *sb, struct ext4_group_info *grp)
1152 if (grp->bb_counters[i] > 0)
1156 i == grp->bb_largest_free_order) {
1157 grp->bb_largest_free_order = i;
1161 if (grp->bb_largest_free_order >= 0) {
1163 grp->bb_largest_free_order]);
1164 list_del_init(&grp->bb_largest_free_order_node);
1166 grp->bb_largest_free_order]);
1168 grp->bb_largest_free_order = i;
1169 if (grp->bb_largest_free_order >= 0 && grp->bb_free) {
1171 grp->bb_largest_free_order]);
1172 list_add_tail(&grp->bb_largest_free_order_node,
1173 &sbi->s_mb_largest_free_orders[grp->bb_largest_free_order]);
1175 grp->bb_largest_free_order]);
1182 struct ext4_group_info *grp)
1196 grp->bb_first_free = i;
1204 ext4_mb_mark_free_simple(sb, buddy, first, len, grp);
1206 grp->bb_counters[0]++;
1210 grp->bb_fragments = fragments;
1212 if (free != grp->bb_free) {
1216 free, grp->bb_free);
1221 grp->bb_free = free;
1225 mb_set_largest_free_order(sb, grp);
1226 mb_update_avg_fragment_size(sb, grp);
1228 clear_bit(EXT4_GROUP_INFO_NEED_INIT_BIT, &(grp->bb_state));
1583 struct ext4_group_info *grp;
1591 grp = ext4_get_group_info(sb, group);
1592 if (!grp)
1596 e4b->bd_info = grp;
1602 if (unlikely(EXT4_MB_GRP_NEED_INIT(grp))) {
2330 struct ext4_group_info *grp = ext4_get_group_info(ac->ac_sb, group);
2333 if (!grp)
2337 if (grp->bb_free == 0)
2396 struct ext4_group_info *grp = e4b->bd_info;
2404 if (grp->bb_counters[i] == 0)
2416 grp->bb_counters[i], i);
2578 struct ext4_group_info *grp = ext4_get_group_info(ac->ac_sb, group);
2582 if (unlikely(!grp || EXT4_MB_GRP_BBITMAP_CORRUPT(grp)))
2585 free = grp->bb_free;
2589 fragments = grp->bb_fragments;
2609 if (grp->bb_largest_free_order < ac->ac_2order)
2645 struct ext4_group_info *grp = ext4_get_group_info(ac->ac_sb, group);
2652 if (!grp)
2660 free = grp->bb_free;
2670 if (unlikely(EXT4_MB_GRP_BBITMAP_CORRUPT(grp)))
2677 /* We only do this if the grp has never been initialized */
2678 if (unlikely(EXT4_MB_GRP_NEED_INIT(grp))) {
2731 struct ext4_group_info *grp = ext4_get_group_info(sb, group);
2740 if (gdp && grp && !EXT4_MB_GRP_TEST_AND_SET_READ(grp) &&
2741 EXT4_MB_GRP_NEED_INIT(grp) &&
2773 struct ext4_group_info *grp;
2780 grp = ext4_get_group_info(sb, group);
2782 if (grp && gdp && EXT4_MB_GRP_NEED_INIT(grp) &&
3215 struct ext4_group_info *grp;
3226 list_for_each_entry(grp, &sbi->s_mb_avg_fragment_size[position],
3242 list_for_each_entry(grp, &sbi->s_mb_largest_free_orders[position],
3457 struct ext4_group_info *grp = ext4_get_group_info(sb, i);
3459 if (grp)
3460 kmem_cache_free(cachep, grp);
3533 ext4_group_t grp, load_grp;
3548 grp = fd->efd_group;
3549 if (grp != load_grp) {
3553 err = ext4_mb_load_buddy(sb, grp, &e4b);
3559 load_grp = grp;
3563 ext4_lock_group(sb, grp);
3566 ext4_unlock_group(sb, grp);
3738 static int ext4_mb_cleanup_pa(struct ext4_group_info *grp)
3744 list_for_each_safe(cur, tmp, &grp->bb_prealloc_list) {
4998 struct ext4_group_info *grp = ext4_get_group_info(sb, group);
5006 if (!grp)
5017 list_for_each(cur, &grp->bb_prealloc_list) {
5076 ext4_group_t grp;
5103 grp = ext4_get_group_number(sb, grp_blk);
5119 ext4_lock_group(sb, grp);
5121 ext4_unlock_group(sb, grp);
5170 struct ext4_group_info *grp;
5246 grp = ext4_get_group_info(sb, ac->ac_b_ex.fe_group);
5247 if (!grp)
5253 list_add(&pa->pa_group_list, &grp->bb_prealloc_list);
5270 struct ext4_group_info *grp;
5297 grp = ext4_get_group_info(sb, ac->ac_b_ex.fe_group);
5298 if (!grp)
5306 list_add(&pa->pa_group_list, &grp->bb_prealloc_list);
5420 struct ext4_group_info *grp = ext4_get_group_info(sb, group);
5429 if (!grp)
5432 if (list_empty(&grp->bb_prealloc_list))
5454 &grp->bb_prealloc_list, pa_group_list) {
5512 free, group, grp->bb_free);
5661 * been added to grp->bb_prealloc_list. So we don't need to lock it
5678 struct ext4_group_info *grp = ext4_get_group_info(sb, i);
5683 if (!grp)
5686 list_for_each(cur, &grp->bb_prealloc_list) {
5697 mb_debug(sb, "%u: %d/%d\n", i, grp->bb_free,
5698 grp->bb_fragments);
6235 * pa allocated above is added to grp->bb_prealloc_list only
6452 struct ext4_group_info *grp;
6478 grp = ext4_get_group_info(sb, block_group);
6479 if (unlikely(!grp || EXT4_MB_GRP_BBITMAP_CORRUPT(grp)))
6919 ext4_group_t grp)
6923 if (grp < (ext4_get_groups_count(sb) - 1))
6927 ext4_group_first_block_no(sb, grp))
7057 struct ext4_group_info *grp;
7101 grp = ext4_get_group_info(sb, group);
7102 if (!grp)
7104 /* We only do this if the grp has never been initialized */
7105 if (unlikely(EXT4_MB_GRP_NEED_INIT(grp))) {
7119 if (grp->bb_free >= minlen) {