aboutsummaryrefslogtreecommitdiffstats
path: root/fs/ext4/mballoc.c
diff options
context:
space:
mode:
Diffstat (limited to 'fs/ext4/mballoc.c')
-rw-r--r--fs/ext4/mballoc.c5
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);