ext4: fix trimmed block count accunting
authorLukas Czerner <lczerner@redhat.com>
Thu, 22 Mar 2012 01:24:22 +0000 (21:24 -0400)
committerTheodore Ts'o <tytso@mit.edu>
Thu, 22 Mar 2012 01:24:22 +0000 (21:24 -0400)
Currently when there is not enough free blocks in the block group to
discard (grp->bb_free < minlen) the 'trimmed' is bumped up anyway with
the number of discarded blocks from the previous iteration. Fix this
by bumping up 'trimmed' only if the ext4_trim_all_free() was actually
run.

Signed-off-by: Lukas Czerner <lczerner@redhat.com>
Reviewed-by: Jan Kara <jack@suse.cz>
Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>
fs/ext4/mballoc.c

index 7d5a1e3a703a9ea3b855c1e173d203e73c6111bb..c8b6a8808166e6fc14380f11358038ca33afc52d 100644 (file)
@@ -5026,8 +5026,8 @@ int ext4_trim_fs(struct super_block *sb, struct fstrim_range *range)
                                ret = cnt;
                                break;
                        }
+                       trimmed += cnt;
                }
-               trimmed += cnt;
 
                /*
                 * For every group except the first one, we are sure