From 0166e6469f9dbbd0c98c71a4803f818f98749929 Mon Sep 17 00:00:00 2001 From: Jaegeuk Kim Date: Thu, 23 Feb 2017 16:58:09 -0800 Subject: [PATCH] f2fs: fix trim_fs assignment This is missing fix from upstream. Signed-off-by: Jaegeuk Kim --- fs/f2fs/segment.c | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/fs/f2fs/segment.c b/fs/f2fs/segment.c index ab0fc88bfe17..f69ddd77558f 100644 --- a/fs/f2fs/segment.c +++ b/fs/f2fs/segment.c @@ -1675,14 +1675,19 @@ static const struct segment_allocation default_salloc_ops = { bool exist_trim_candidates(struct f2fs_sb_info *sbi, struct cp_control *cpc) { __u64 trim_start = cpc->trim_start; + bool has_candidate = false; mutex_lock(&SIT_I(sbi)->sentry_lock); - for (; trim_start <= cpc->trim_end; trim_start++) - if (add_discard_addrs(sbi, cpc, true)) + for (; cpc->trim_start <= cpc->trim_end; cpc->trim_start++) { + if (add_discard_addrs(sbi, cpc, true)) { + has_candidate = true; break; + } + } mutex_unlock(&SIT_I(sbi)->sentry_lock); - return trim_start <= cpc->trim_end; + cpc->trim_start = trim_start; + return has_candidate; } int f2fs_trim_fs(struct f2fs_sb_info *sbi, struct fstrim_range *range)