Lines Matching refs:flex_gd

253 	struct ext4_new_flex_group_data *flex_gd;
255 flex_gd = kmalloc(sizeof(*flex_gd), GFP_NOFS);
256 if (flex_gd == NULL)
260 flex_gd->resize_bg = MAX_RESIZE_BG;
262 flex_gd->resize_bg = flexbg_size;
264 flex_gd->groups = kmalloc_array(flex_gd->resize_bg,
267 if (flex_gd->groups == NULL)
270 flex_gd->bg_flags = kmalloc_array(flex_gd->resize_bg, sizeof(__u16),
272 if (flex_gd->bg_flags == NULL)
275 return flex_gd;
278 kfree(flex_gd->groups);
280 kfree(flex_gd);
285 static void free_flex_gd(struct ext4_new_flex_group_data *flex_gd)
287 kfree(flex_gd->bg_flags);
288 kfree(flex_gd->groups);
289 kfree(flex_gd);
306 struct ext4_new_flex_group_data *flex_gd,
309 struct ext4_new_group_data *group_data = flex_gd->groups;
322 BUG_ON(flex_gd->count == 0 || group_data == NULL);
325 last_group = src_group + flex_gd->count - 1;
331 if (src_group >= group_data[0].group + flex_gd->count)
351 for (; bb_index < flex_gd->count; bb_index++) {
358 flex_gd->bg_flags[group] &= uninit_mask;
362 for (; ib_index < flex_gd->count; ib_index++) {
369 flex_gd->bg_flags[group] &= uninit_mask;
373 for (; it_index < flex_gd->count; it_index++) {
385 flex_gd->bg_flags[group + 1] &= uninit_mask;
392 flex_gd->bg_flags[group] &= uninit_mask;
397 for (i = 0; i < flex_gd->count; i++) {
408 "%u groups, flexbg size is %u:\n", flex_gd->count,
411 for (i = 0; i < flex_gd->count; i++) {
459 * @flex_gd: flex group data
462 struct ext4_new_flex_group_data *flex_gd,
480 group -= flex_gd->groups[0].group;
486 if (flex_gd->bg_flags[group] & EXT4_BG_BLOCK_UNINIT) {
487 BUG_ON(flex_gd->count > 1);
495 bh = sb_getblk(sb, flex_gd->groups[group].block_bitmap);
534 struct ext4_new_flex_group_data *flex_gd)
541 struct ext4_new_group_data *group_data = flex_gd->groups;
542 __u16 *bg_flags = flex_gd->bg_flags;
549 BUG_ON(!flex_gd->count || !group_data ||
561 for (i = 0; i < flex_gd->count; i++, group++) {
691 for (i = 1; i < flex_gd->count; i++) {
698 flex_gd,
712 flex_gd,
1342 struct ext4_new_flex_group_data *flex_gd)
1344 struct ext4_new_group_data *group_data = flex_gd->groups;
1349 __u16 *bg_flags = flex_gd->bg_flags;
1353 for (i = 0; i < flex_gd->count; i++, group_data++, bg_flags++) {
1419 * @flex_gd: new added groups
1422 struct ext4_new_flex_group_data *flex_gd)
1427 struct ext4_new_group_data *group_data = flex_gd->groups;
1432 BUG_ON(flex_gd->count == 0 || group_data == NULL);
1443 for (i = 0; i < flex_gd->count; i++) {
1457 flex_gd->count);
1459 flex_gd->count);
1483 sbi->s_groups_count += flex_gd->count;
1496 EXT4_INODES_PER_GROUP(sb) * flex_gd->count);
1508 atomic_add(EXT4_INODES_PER_GROUP(sb) * flex_gd->count,
1530 "%llu blocks(%llu free %llu reserved)\n", flex_gd->count,
1540 struct ext4_new_flex_group_data *flex_gd)
1551 BUG_ON(!flex_gd->count || !flex_gd->groups || !flex_gd->bg_flags);
1558 err = setup_new_flex_group_blocks(sb, flex_gd);
1570 credit += 1 + DIV_ROUND_UP(flex_gd->count, EXT4_DESC_PER_BLOCK(sb));
1584 group = flex_gd->groups[0].group;
1587 resize_inode, flex_gd->count);
1591 err = ext4_setup_new_descs(handle, sb, flex_gd);
1595 ext4_update_super(sb, flex_gd);
1606 int gdb_num_end = ((group + flex_gd->count - 1) /
1633 struct ext4_new_flex_group_data *flex_gd,
1638 struct ext4_new_group_data *group_data = flex_gd->groups;
1658 last_group = group | (flex_gd->resize_bg - 1);
1662 flex_gd->count = last_group - group + 1;
1664 for (i = 0; i < flex_gd->count; i++) {
1673 flex_gd->bg_flags[i] = EXT4_BG_BLOCK_UNINIT |
1676 flex_gd->bg_flags[i] |= EXT4_BG_INODE_ZEROED;
1678 flex_gd->bg_flags[i] = EXT4_BG_INODE_ZEROED;
1683 flex_gd->bg_flags[i - 1] &= ~EXT4_BG_BLOCK_UNINIT;
1709 struct ext4_new_flex_group_data flex_gd;
1765 flex_gd.count = 1;
1766 flex_gd.groups = input;
1767 flex_gd.bg_flags = &bg_flags;
1768 err = ext4_flex_group_add(sb, inode, &flex_gd);
2005 struct ext4_new_flex_group_data *flex_gd = NULL;
2152 flex_gd = alloc_flex_gd(flexbg_size);
2153 if (flex_gd == NULL) {
2161 while (ext4_setup_next_flex_gd(sb, flex_gd, n_blocks_count)) {
2169 if (ext4_alloc_group_tables(sb, flex_gd, flexbg_size) != 0)
2171 err = ext4_flex_group_add(sb, resize_inode, flex_gd);
2179 free_flex_gd(flex_gd);
2180 flex_gd = NULL;
2189 if (flex_gd)
2190 free_flex_gd(flex_gd);