summaryrefslogtreecommitdiffstats
path: root/fs/f2fs/checkpoint.c
diff options
context:
space:
mode:
authorChao Yu <yuchao0@huawei.com>2017-04-28 13:56:08 +0800
committerJaegeuk Kim <jaegeuk@kernel.org>2017-05-03 10:04:56 -0700
commit1f43e2ad7bff54f7c82a084a57e5c90da0d3f4d9 (patch)
treee10bc36ec318ab4c4b8d9b5c9aad579d9f516b4f /fs/f2fs/checkpoint.c
parentc473f1a9658b6c23d576136d5a49b1c731ef1767 (diff)
downloadlinux-stable-1f43e2ad7bff54f7c82a084a57e5c90da0d3f4d9.tar.gz
linux-stable-1f43e2ad7bff54f7c82a084a57e5c90da0d3f4d9.tar.bz2
linux-stable-1f43e2ad7bff54f7c82a084a57e5c90da0d3f4d9.zip
f2fs: introduce CP_TRIMMED_FLAG to avoid unneeded discard
Introduce CP_TRIMMED_FLAG to indicate all invalid block were trimmed before umount, so once we do mount with image which contain the flag, we don't record invalid blocks as undiscard one, when fstrim is being triggered, we can avoid issuing redundant discard commands. Signed-off-by: Chao Yu <yuchao0@huawei.com> Signed-off-by: Jaegeuk Kim <jaegeuk@kernel.org>
Diffstat (limited to 'fs/f2fs/checkpoint.c')
-rw-r--r--fs/f2fs/checkpoint.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/fs/f2fs/checkpoint.c b/fs/f2fs/checkpoint.c
index 27578903eeb6..ea9c317b5916 100644
--- a/fs/f2fs/checkpoint.c
+++ b/fs/f2fs/checkpoint.c
@@ -1059,6 +1059,9 @@ static void update_ckpt_flags(struct f2fs_sb_info *sbi, struct cp_control *cpc)
sbi->blocks_per_seg - NM_I(sbi)->nat_bits_blocks)
disable_nat_bits(sbi, false);
+ if (cpc->reason & CP_TRIMMED)
+ __set_ckpt_flags(ckpt, CP_TRIMMED_FLAG);
+
if (cpc->reason & CP_UMOUNT)
__set_ckpt_flags(ckpt, CP_UMOUNT_FLAG);
else