f2fs: fix to clear CP_TRIMMED_FLAG
authorChao Yu <yuchao0@huawei.com>
Wed, 31 Jan 2018 01:30:34 +0000 (09:30 +0800)
committerJaegeuk Kim <jaegeuk@kernel.org>
Sun, 8 Apr 2018 11:07:49 +0000 (04:07 -0700)
Once CP_TRIMMED_FLAG is set, after a reboot, we will never issue discard
before LBA becomes invalid again, fix it by clearing the flag in
checkpoint without CP_TRIMMED reason.

Fixes: 1f43e2ad7bff ("f2fs: introduce CP_TRIMMED_FLAG to avoid unneeded discard")
Signed-off-by: Chao Yu <yuchao0@huawei.com>
Signed-off-by: Jaegeuk Kim <jaegeuk@kernel.org>
fs/f2fs/checkpoint.c

index 701781a372f3ec34f089bdb79c82628d4d6baaa1..e8fd88978439c95bc49d91799ff8ea23b0342702 100644 (file)
@@ -1139,6 +1139,8 @@ static void update_ckpt_flags(struct f2fs_sb_info *sbi, struct cp_control *cpc)
 
        if (cpc->reason & CP_TRIMMED)
                __set_ckpt_flags(ckpt, CP_TRIMMED_FLAG);
+       else
+               __clear_ckpt_flags(ckpt, CP_TRIMMED_FLAG);
 
        if (cpc->reason & CP_UMOUNT)
                __set_ckpt_flags(ckpt, CP_UMOUNT_FLAG);