diff options
Diffstat (limited to 'fs/ext4/mballoc.c')
-rw-r--r-- | fs/ext4/mballoc.c | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/fs/ext4/mballoc.c b/fs/ext4/mballoc.c index b189cb4ff20f..4a25725e9157 100644 --- a/fs/ext4/mballoc.c +++ b/fs/ext4/mballoc.c | |||
@@ -4821,7 +4821,7 @@ ext4_trim_all_free(struct super_block *sb, ext4_group_t group, | |||
4821 | ext4_grpblk_t minblocks) | 4821 | ext4_grpblk_t minblocks) |
4822 | { | 4822 | { |
4823 | void *bitmap; | 4823 | void *bitmap; |
4824 | ext4_grpblk_t next, count = 0; | 4824 | ext4_grpblk_t next, count = 0, free_count = 0; |
4825 | struct ext4_buddy e4b; | 4825 | struct ext4_buddy e4b; |
4826 | int ret; | 4826 | int ret; |
4827 | 4827 | ||
@@ -4848,6 +4848,7 @@ ext4_trim_all_free(struct super_block *sb, ext4_group_t group, | |||
4848 | next - start, group, &e4b); | 4848 | next - start, group, &e4b); |
4849 | count += next - start; | 4849 | count += next - start; |
4850 | } | 4850 | } |
4851 | free_count += next - start; | ||
4851 | start = next + 1; | 4852 | start = next + 1; |
4852 | 4853 | ||
4853 | if (fatal_signal_pending(current)) { | 4854 | if (fatal_signal_pending(current)) { |
@@ -4861,7 +4862,7 @@ ext4_trim_all_free(struct super_block *sb, ext4_group_t group, | |||
4861 | ext4_lock_group(sb, group); | 4862 | ext4_lock_group(sb, group); |
4862 | } | 4863 | } |
4863 | 4864 | ||
4864 | if ((e4b.bd_info->bb_free - count) < minblocks) | 4865 | if ((e4b.bd_info->bb_free - free_count) < minblocks) |
4865 | break; | 4866 | break; |
4866 | } | 4867 | } |
4867 | ext4_unlock_group(sb, group); | 4868 | ext4_unlock_group(sb, group); |