From: Chao Yu Date: Sat, 28 Feb 2015 09:23:30 +0000 (+0800) Subject: f2fs: fix to issue small discard in real-time mode discard X-Git-Tag: v4.1-rc1~87^2~42 X-Git-Url: https://git.karo-electronics.de/?a=commitdiff_plain;h=b28c3f94933dae663eeca24637bf9ff962bf02dc;p=karo-tx-linux.git f2fs: fix to issue small discard in real-time mode discard Now in f2fs, we share functions and structures for batch mode and real-time mode discard. For real-time mode discard, in shared function add_discard_addrs, we will use uninitialized trim_minlen in struct cp_control to compare with length of contiguous free blocks to decide whether skipping discard fragmented freespace or not, this makes us ignore small discard sometimes. Fix it. Signed-off-by: Chao Yu Reviewed-by : Changman Lee Signed-off-by: Jaegeuk Kim --- diff --git a/fs/f2fs/segment.c b/fs/f2fs/segment.c index 1e909340842a..3e80bd69d4a0 100644 --- a/fs/f2fs/segment.c +++ b/fs/f2fs/segment.c @@ -552,7 +552,7 @@ static void add_discard_addrs(struct f2fs_sb_info *sbi, struct cp_control *cpc) end = __find_rev_next_zero_bit(dmap, max_blocks, start + 1); - if (end - start < cpc->trim_minlen) + if (force && end - start < cpc->trim_minlen) continue; __add_discard_entry(sbi, cpc, start, end);