diff options
-rw-r--r-- | fs/ext4/ioctl.c | 7 | ||||
-rw-r--r-- | fs/ext4/mballoc.c | 5 |
2 files changed, 3 insertions, 9 deletions
diff --git a/fs/ext4/ioctl.c b/fs/ext4/ioctl.c index 8b84fe28cca..4c8174aa685 100644 --- a/fs/ext4/ioctl.c +++ b/fs/ext4/ioctl.c | |||
@@ -404,13 +404,6 @@ resizefs_out: | |||
404 | if (!blk_queue_discard(q)) | 404 | if (!blk_queue_discard(q)) |
405 | return -EOPNOTSUPP; | 405 | return -EOPNOTSUPP; |
406 | 406 | ||
407 | if (EXT4_HAS_RO_COMPAT_FEATURE(sb, | ||
408 | EXT4_FEATURE_RO_COMPAT_BIGALLOC)) { | ||
409 | ext4_msg(sb, KERN_ERR, | ||
410 | "FITRIM not supported with bigalloc"); | ||
411 | return -EOPNOTSUPP; | ||
412 | } | ||
413 | |||
414 | if (copy_from_user(&range, (struct fstrim_range __user *)arg, | 407 | if (copy_from_user(&range, (struct fstrim_range __user *)arg, |
415 | sizeof(range))) | 408 | sizeof(range))) |
416 | return -EFAULT; | 409 | return -EFAULT; |
diff --git a/fs/ext4/mballoc.c b/fs/ext4/mballoc.c index 8ec6f88b7a3..a415465f97a 100644 --- a/fs/ext4/mballoc.c +++ b/fs/ext4/mballoc.c | |||
@@ -4990,7 +4990,8 @@ int ext4_trim_fs(struct super_block *sb, struct fstrim_range *range) | |||
4990 | 4990 | ||
4991 | start = range->start >> sb->s_blocksize_bits; | 4991 | start = range->start >> sb->s_blocksize_bits; |
4992 | end = start + (range->len >> sb->s_blocksize_bits) - 1; | 4992 | end = start + (range->len >> sb->s_blocksize_bits) - 1; |
4993 | minlen = range->minlen >> sb->s_blocksize_bits; | 4993 | minlen = EXT4_NUM_B2C(EXT4_SB(sb), |
4994 | range->minlen >> sb->s_blocksize_bits); | ||
4994 | 4995 | ||
4995 | if (unlikely(minlen > EXT4_CLUSTERS_PER_GROUP(sb)) || | 4996 | if (unlikely(minlen > EXT4_CLUSTERS_PER_GROUP(sb)) || |
4996 | unlikely(start >= max_blks)) | 4997 | unlikely(start >= max_blks)) |
@@ -5050,6 +5051,6 @@ int ext4_trim_fs(struct super_block *sb, struct fstrim_range *range) | |||
5050 | atomic_set(&EXT4_SB(sb)->s_last_trim_minblks, minlen); | 5051 | atomic_set(&EXT4_SB(sb)->s_last_trim_minblks, minlen); |
5051 | 5052 | ||
5052 | out: | 5053 | out: |
5053 | range->len = trimmed * sb->s_blocksize; | 5054 | range->len = EXT4_C2B(EXT4_SB(sb), trimmed) << sb->s_blocksize_bits; |
5054 | return ret; | 5055 | return ret; |
5055 | } | 5056 | } |