mirror of https://gitee.com/openkylin/linux.git
f2fs: Do not issue small discards in LFS mode
clear_prefree_segments() issues small discards after discarding full segments. These small discards may not be section aligned, so not zone aligned on a zoned block device, causing __f2fs_iissue_discard_zone() to fail. Fix this by not issuing small discards for a volume mounted with the BLKZONED feature enabled. Cc: stable@vger.kernel.org Signed-off-by: Damien Le Moal <damien.lemoal@wdc.com> Reviewed-by: Chao Yu <yuchao0@huawei.com> Signed-off-by: Jaegeuk Kim <jaegeuk@kernel.org>
This commit is contained in:
parent
aaebdee8b8
commit
acfd2810c7
|
@ -1337,7 +1337,8 @@ void clear_prefree_segments(struct f2fs_sb_info *sbi, struct cp_control *cpc)
|
|||
sbi->blocks_per_seg, cur_pos);
|
||||
len = next_pos - cur_pos;
|
||||
|
||||
if (force && len < cpc->trim_minlen)
|
||||
if (f2fs_sb_mounted_blkzoned(sbi->sb) ||
|
||||
(force && len < cpc->trim_minlen))
|
||||
goto skip;
|
||||
|
||||
f2fs_issue_discard(sbi, entry->start_blkaddr + cur_pos,
|
||||
|
|
Loading…
Reference in New Issue