diff options
author | Jaegeuk Kim <jaegeuk@kernel.org> | 2020-05-13 21:12:53 -0700 |
---|---|---|
committer | Jaegeuk Kim <jaegeuk@kernel.org> | 2020-05-18 10:47:24 -0700 |
commit | 9c30df7c5a304e383592587cb2a41bb2ab0ac80d (patch) | |
tree | 947f933e5fcb05eed1b8de66eb0daddcda0f6d92 /fs/f2fs | |
parent | 1ae18f71cb522684bac1718f5c188fb5e30eb23d (diff) | |
download | linux-9c30df7c5a304e383592587cb2a41bb2ab0ac80d.tar.gz linux-9c30df7c5a304e383592587cb2a41bb2ab0ac80d.tar.bz2 linux-9c30df7c5a304e383592587cb2a41bb2ab0ac80d.zip |
f2fs: flush dirty meta pages when flushing them
Let's guarantee flusing dirty meta pages to avoid infinite loop.
Signed-off-by: Jaegeuk Kim <jaegeuk@kernel.org>
Diffstat (limited to 'fs/f2fs')
-rw-r--r-- | fs/f2fs/checkpoint.c | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/fs/f2fs/checkpoint.c b/fs/f2fs/checkpoint.c index 620a386d82c1..3dc3ac6fe143 100644 --- a/fs/f2fs/checkpoint.c +++ b/fs/f2fs/checkpoint.c @@ -1266,6 +1266,9 @@ void f2fs_wait_on_all_pages(struct f2fs_sb_info *sbi, int type) if (unlikely(f2fs_cp_error(sbi))) break; + if (type == F2FS_DIRTY_META) + f2fs_sync_meta_pages(sbi, META, LONG_MAX, + FS_CP_META_IO); io_schedule_timeout(DEFAULT_IO_TIMEOUT); } finish_wait(&sbi->cp_wait, &wait); |