diff options
| author | Jaegeuk Kim <jaegeuk@kernel.org> | 2017-01-11 16:41:25 -0800 |
|---|---|---|
| committer | Mister Oyster <oysterized@gmail.com> | 2017-04-13 12:34:38 +0200 |
| commit | 948f27a22f2792b715dd9f546d9776d8e07e04fb (patch) | |
| tree | fbdde19eb8abd00cb42e6809c47b6ad6f5b6867d /fs/f2fs/checkpoint.c | |
| parent | c25ab051862a7e71d226a35a187b7dc67c34941a (diff) | |
f2fs: support async discard based on v4.9
This patch is based on commit 275b66b09e85 (f2fs: support async discard).
Signed-off-by: Jaegeuk Kim <jaegeuk@kernel.org>
Diffstat (limited to 'fs/f2fs/checkpoint.c')
| -rw-r--r-- | fs/f2fs/checkpoint.c | 8 |
1 files changed, 5 insertions, 3 deletions
diff --git a/fs/f2fs/checkpoint.c b/fs/f2fs/checkpoint.c index c1db40602..824dd3b07 100644 --- a/fs/f2fs/checkpoint.c +++ b/fs/f2fs/checkpoint.c @@ -1253,6 +1253,7 @@ int write_checkpoint(struct f2fs_sb_info *sbi, struct cp_control *cpc) f2fs_bug_on(sbi, prefree_segments(sbi)); flush_sit_entries(sbi, cpc); clear_prefree_segments(sbi, cpc); + f2fs_wait_all_discard_bio(sbi); unblock_operations(sbi); goto out; } @@ -1271,11 +1272,12 @@ int write_checkpoint(struct f2fs_sb_info *sbi, struct cp_control *cpc) /* unlock all the fs_lock[] in do_checkpoint() */ err = do_checkpoint(sbi, cpc); - - if (err) + if (err) { release_discard_addrs(sbi); - else + } else { clear_prefree_segments(sbi, cpc); + f2fs_wait_all_discard_bio(sbi); + } unblock_operations(sbi); stat_inc_cp_count(sbi->stat_info); |
