Skip to content

Commit

Permalink
ext4: always set then trimmed blocks count into len
Browse files Browse the repository at this point in the history
Currently if the range to trim is too small, for example on 1K fs
the request to trim the first block, then the 'range->len' is not set
reporting wrong number of discarded block to the caller.

Fix this by always setting the 'range->len' before we return. Note that
when there is a failure (-EINVAL) caller can not depend on 'range->len'
being set properly.

Signed-off-by: Lukas Czerner <lczerner@redhat.com>
Reviewed-by: Jan Kara <jack@suse.cz>
Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>
  • Loading branch information
Lukas Czerner authored and Theodore Ts'o committed Mar 22, 2012
1 parent 21e7fd2 commit a7967f0
Showing 1 changed file with 1 addition and 1 deletion.
2 changes: 1 addition & 1 deletion fs/ext4/mballoc.c
Original file line number Diff line number Diff line change
Expand Up @@ -5035,11 +5035,11 @@ int ext4_trim_fs(struct super_block *sb, struct fstrim_range *range)
*/
first_cluster = 0;
}
range->len = trimmed * sb->s_blocksize;

if (!ret)
atomic_set(&EXT4_SB(sb)->s_last_trim_minblks, minlen);

out:
range->len = trimmed * sb->s_blocksize;
return ret;
}

0 comments on commit a7967f0

Please sign in to comment.