|
@@ -4990,7 +4990,8 @@ int ext4_trim_fs(struct super_block *sb, struct fstrim_range *range)
|
|
|
|
|
|
start = range->start >> sb->s_blocksize_bits;
|
|
|
end = start + (range->len >> sb->s_blocksize_bits) - 1;
|
|
|
- minlen = range->minlen >> sb->s_blocksize_bits;
|
|
|
+ minlen = EXT4_NUM_B2C(EXT4_SB(sb),
|
|
|
+ range->minlen >> sb->s_blocksize_bits);
|
|
|
|
|
|
if (unlikely(minlen > EXT4_CLUSTERS_PER_GROUP(sb)) ||
|
|
|
unlikely(start >= max_blks))
|
|
@@ -5050,6 +5051,6 @@ int ext4_trim_fs(struct super_block *sb, struct fstrim_range *range)
|
|
|
atomic_set(&EXT4_SB(sb)->s_last_trim_minblks, minlen);
|
|
|
|
|
|
out:
|
|
|
- range->len = trimmed * sb->s_blocksize;
|
|
|
+ range->len = EXT4_C2B(EXT4_SB(sb), trimmed) << sb->s_blocksize_bits;
|
|
|
return ret;
|
|
|
}
|