summaryrefslogtreecommitdiffstats
path: root/fs/f2fs
diff options
context:
space:
mode:
authorJaegeuk Kim <jaegeuk@kernel.org>2020-05-13 21:12:53 -0700
committerJaegeuk Kim <jaegeuk@kernel.org>2020-05-18 10:47:24 -0700
commit9c30df7c5a304e383592587cb2a41bb2ab0ac80d (patch)
tree947f933e5fcb05eed1b8de66eb0daddcda0f6d92 /fs/f2fs
parent1ae18f71cb522684bac1718f5c188fb5e30eb23d (diff)
downloadlinux-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.c3
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);