diff options
| author | Chao Yu <yuchao0@huawei.com> | 2017-04-28 13:56:08 +0800 |
|---|---|---|
| committer | Moyster <oysterized@gmail.com> | 2017-05-21 18:43:38 +0200 |
| commit | 8bcbffcfc462feb16e46fd61f919cef49c7dc219 (patch) | |
| tree | f13ea1dbb3308d33a657fd07f6162ae7741c4ad9 /fs/f2fs/super.c | |
| parent | f91a40a85a83e9d391e5911ec0b85271cb01971a (diff) | |
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>
Conflicts:
include/trace/events/f2fs.h
Diffstat (limited to 'fs/f2fs/super.c')
| -rw-r--r-- | fs/f2fs/super.c | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/fs/f2fs/super.c b/fs/f2fs/super.c index ede85fef4..fbfa68b72 100644 --- a/fs/f2fs/super.c +++ b/fs/f2fs/super.c @@ -783,6 +783,13 @@ static void f2fs_put_super(struct super_block *sb) /* be sure to wait for any on-going discard commands */ f2fs_wait_discard_bios(sbi); + if (!sbi->discard_blks) { + struct cp_control cpc = { + .reason = CP_UMOUNT | CP_TRIMMED, + }; + write_checkpoint(sbi, &cpc); + } + /* write_checkpoint can update stat informaion */ f2fs_destroy_stats(sbi); |
