ext3: Adjust trim start with first_data_block.
As we have make the consense in the e-mail[1], the trim start should be added with first_data_block. So this patch fulfill it and remove the check for start < first_data_block. [1] http://www.spinics.net/lists/linux-ext4/msg22737.html Cc: Jan Kara <jack@suse.cz> Cc: Lukas Czerner <lczerner@redhat.com> Signed-off-by: Tao Ma <boyu.mt@taobao.com> Signed-off-by: Jan Kara <jack@suse.cz>
This commit is contained in:
parent
7a39de1510
commit
4b44dd300d
|
@ -2090,7 +2090,8 @@ int ext3_trim_fs(struct super_block *sb, struct fstrim_range *range)
|
||||||
ext3_fsblk_t max_blks = le32_to_cpu(es->s_blocks_count);
|
ext3_fsblk_t max_blks = le32_to_cpu(es->s_blocks_count);
|
||||||
int ret = 0;
|
int ret = 0;
|
||||||
|
|
||||||
start = range->start >> sb->s_blocksize_bits;
|
start = (range->start >> sb->s_blocksize_bits) +
|
||||||
|
le32_to_cpu(es->s_first_data_block);
|
||||||
len = range->len >> sb->s_blocksize_bits;
|
len = range->len >> sb->s_blocksize_bits;
|
||||||
minlen = range->minlen >> sb->s_blocksize_bits;
|
minlen = range->minlen >> sb->s_blocksize_bits;
|
||||||
trimmed = 0;
|
trimmed = 0;
|
||||||
|
@ -2099,10 +2100,6 @@ int ext3_trim_fs(struct super_block *sb, struct fstrim_range *range)
|
||||||
return -EINVAL;
|
return -EINVAL;
|
||||||
if (start >= max_blks)
|
if (start >= max_blks)
|
||||||
goto out;
|
goto out;
|
||||||
if (start < le32_to_cpu(es->s_first_data_block)) {
|
|
||||||
len -= le32_to_cpu(es->s_first_data_block) - start;
|
|
||||||
start = le32_to_cpu(es->s_first_data_block);
|
|
||||||
}
|
|
||||||
if (start + len > max_blks)
|
if (start + len > max_blks)
|
||||||
len = max_blks - start;
|
len = max_blks - start;
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue