diff options
Diffstat (limited to 'fs')
-rw-r--r-- | fs/ext4/mballoc.c | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/fs/ext4/mballoc.c b/fs/ext4/mballoc.c index 1900ec7a1579..b189cb4ff20f 100644 --- a/fs/ext4/mballoc.c +++ b/fs/ext4/mballoc.c | |||
@@ -4902,6 +4902,8 @@ int ext4_trim_fs(struct super_block *sb, struct fstrim_range *range) | |||
4902 | 4902 | ||
4903 | if (unlikely(minlen > EXT4_BLOCKS_PER_GROUP(sb))) | 4903 | if (unlikely(minlen > EXT4_BLOCKS_PER_GROUP(sb))) |
4904 | return -EINVAL; | 4904 | return -EINVAL; |
4905 | if (start + len <= first_data_blk) | ||
4906 | goto out; | ||
4905 | if (start < first_data_blk) { | 4907 | if (start < first_data_blk) { |
4906 | len -= first_data_blk - start; | 4908 | len -= first_data_blk - start; |
4907 | start = first_data_blk; | 4909 | start = first_data_blk; |
@@ -4950,5 +4952,6 @@ int ext4_trim_fs(struct super_block *sb, struct fstrim_range *range) | |||
4950 | } | 4952 | } |
4951 | range->len = trimmed * sb->s_blocksize; | 4953 | range->len = trimmed * sb->s_blocksize; |
4952 | 4954 | ||
4955 | out: | ||
4953 | return ret; | 4956 | return ret; |
4954 | } | 4957 | } |