diff options
author | Jaegeuk Kim <jaegeuk@kernel.org> | 2016-12-29 14:07:53 -0800 |
---|---|---|
committer | Jaegeuk Kim <jaegeuk@kernel.org> | 2017-01-29 12:46:01 +0900 |
commit | 4e6a8d9b224f886362ea6e8f6046b541437c944f (patch) | |
tree | 915e62c7bf4ec07d9aa8d84e91515812484b6e58 /fs/f2fs/super.c | |
parent | bb95d9ab2a9d4afd03b59a603cccb2c601f68b78 (diff) | |
download | linux-4e6a8d9b224f886362ea6e8f6046b541437c944f.tar.gz linux-4e6a8d9b224f886362ea6e8f6046b541437c944f.tar.bz2 linux-4e6a8d9b224f886362ea6e8f6046b541437c944f.zip |
f2fs: relax async discard commands more
This patch relaxes async discard commands to avoid waiting its end_io during
checkpoint.
Instead of waiting them during checkpoint, it will be done when actually reusing
them.
Test on initial partition of nvme drive.
# time fstrim /mnt/test
Before : 6.158s
After : 4.822s
Reviewed-by: Chao Yu <yuchao0@huawei.com>
Signed-off-by: Jaegeuk Kim <jaegeuk@kernel.org>
Diffstat (limited to 'fs/f2fs/super.c')
-rw-r--r-- | fs/f2fs/super.c | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/fs/f2fs/super.c b/fs/f2fs/super.c index b7efbd4f6af9..e68cec492f06 100644 --- a/fs/f2fs/super.c +++ b/fs/f2fs/super.c @@ -770,6 +770,9 @@ static void f2fs_put_super(struct super_block *sb) write_checkpoint(sbi, &cpc); } + /* be sure to wait for any on-going discard commands */ + f2fs_wait_discard_bio(sbi, NULL_ADDR); + /* write_checkpoint can update stat informaion */ f2fs_destroy_stats(sbi); |