diff options
Diffstat (limited to 'fs/ext4/resize.c')
-rw-r--r-- | fs/ext4/resize.c | 11 |
1 files changed, 4 insertions, 7 deletions
diff --git a/fs/ext4/resize.c b/fs/ext4/resize.c index 5692c48754a0..ca5c8aa00a2f 100644 --- a/fs/ext4/resize.c +++ b/fs/ext4/resize.c | |||
@@ -911,7 +911,8 @@ int ext4_group_add(struct super_block *sb, struct ext4_new_group_data *input) | |||
911 | percpu_counter_add(&sbi->s_freeinodes_counter, | 911 | percpu_counter_add(&sbi->s_freeinodes_counter, |
912 | EXT4_INODES_PER_GROUP(sb)); | 912 | EXT4_INODES_PER_GROUP(sb)); |
913 | 913 | ||
914 | if (EXT4_HAS_INCOMPAT_FEATURE(sb, EXT4_FEATURE_INCOMPAT_FLEX_BG)) { | 914 | if (EXT4_HAS_INCOMPAT_FEATURE(sb, EXT4_FEATURE_INCOMPAT_FLEX_BG) && |
915 | sbi->s_log_groups_per_flex) { | ||
915 | ext4_group_t flex_group; | 916 | ext4_group_t flex_group; |
916 | flex_group = ext4_flex_group(sbi, input->group); | 917 | flex_group = ext4_flex_group(sbi, input->group); |
917 | atomic_add(input->free_blocks_count, | 918 | atomic_add(input->free_blocks_count, |
@@ -920,8 +921,7 @@ int ext4_group_add(struct super_block *sb, struct ext4_new_group_data *input) | |||
920 | &sbi->s_flex_groups[flex_group].free_inodes); | 921 | &sbi->s_flex_groups[flex_group].free_inodes); |
921 | } | 922 | } |
922 | 923 | ||
923 | ext4_handle_dirty_metadata(handle, NULL, sbi->s_sbh); | 924 | ext4_handle_dirty_super(handle, sb); |
924 | sb->s_dirt = 1; | ||
925 | 925 | ||
926 | exit_journal: | 926 | exit_journal: |
927 | mutex_unlock(&sbi->s_resize_lock); | 927 | mutex_unlock(&sbi->s_resize_lock); |
@@ -952,7 +952,6 @@ int ext4_group_extend(struct super_block *sb, struct ext4_super_block *es, | |||
952 | ext4_fsblk_t n_blocks_count) | 952 | ext4_fsblk_t n_blocks_count) |
953 | { | 953 | { |
954 | ext4_fsblk_t o_blocks_count; | 954 | ext4_fsblk_t o_blocks_count; |
955 | ext4_group_t o_groups_count; | ||
956 | ext4_grpblk_t last; | 955 | ext4_grpblk_t last; |
957 | ext4_grpblk_t add; | 956 | ext4_grpblk_t add; |
958 | struct buffer_head *bh; | 957 | struct buffer_head *bh; |
@@ -964,7 +963,6 @@ int ext4_group_extend(struct super_block *sb, struct ext4_super_block *es, | |||
964 | * yet: we're going to revalidate es->s_blocks_count after | 963 | * yet: we're going to revalidate es->s_blocks_count after |
965 | * taking the s_resize_lock below. */ | 964 | * taking the s_resize_lock below. */ |
966 | o_blocks_count = ext4_blocks_count(es); | 965 | o_blocks_count = ext4_blocks_count(es); |
967 | o_groups_count = EXT4_SB(sb)->s_groups_count; | ||
968 | 966 | ||
969 | if (test_opt(sb, DEBUG)) | 967 | if (test_opt(sb, DEBUG)) |
970 | printk(KERN_DEBUG "EXT4-fs: extending last group from %llu uto %llu blocks\n", | 968 | printk(KERN_DEBUG "EXT4-fs: extending last group from %llu uto %llu blocks\n", |
@@ -1044,13 +1042,12 @@ int ext4_group_extend(struct super_block *sb, struct ext4_super_block *es, | |||
1044 | goto exit_put; | 1042 | goto exit_put; |
1045 | } | 1043 | } |
1046 | ext4_blocks_count_set(es, o_blocks_count + add); | 1044 | ext4_blocks_count_set(es, o_blocks_count + add); |
1047 | ext4_handle_dirty_metadata(handle, NULL, EXT4_SB(sb)->s_sbh); | ||
1048 | sb->s_dirt = 1; | ||
1049 | mutex_unlock(&EXT4_SB(sb)->s_resize_lock); | 1045 | mutex_unlock(&EXT4_SB(sb)->s_resize_lock); |
1050 | ext4_debug("freeing blocks %llu through %llu\n", o_blocks_count, | 1046 | ext4_debug("freeing blocks %llu through %llu\n", o_blocks_count, |
1051 | o_blocks_count + add); | 1047 | o_blocks_count + add); |
1052 | /* We add the blocks to the bitmap and set the group need init bit */ | 1048 | /* We add the blocks to the bitmap and set the group need init bit */ |
1053 | ext4_add_groupblocks(handle, sb, o_blocks_count, add); | 1049 | ext4_add_groupblocks(handle, sb, o_blocks_count, add); |
1050 | ext4_handle_dirty_super(handle, sb); | ||
1054 | ext4_debug("freed blocks %llu through %llu\n", o_blocks_count, | 1051 | ext4_debug("freed blocks %llu through %llu\n", o_blocks_count, |
1055 | o_blocks_count + add); | 1052 | o_blocks_count + add); |
1056 | if ((err = ext4_journal_stop(handle))) | 1053 | if ((err = ext4_journal_stop(handle))) |