f2fs: flush dirty meta pages when flushing them
authorJaegeuk Kim <jaegeuk@kernel.org>
Thu, 14 May 2020 04:12:53 +0000 (21:12 -0700)
committerJaegeuk Kim <jaegeuk@kernel.org>
Mon, 18 May 2020 17:47:24 +0000 (10:47 -0700)
Let's guarantee flusing dirty meta pages to avoid infinite loop.

Signed-off-by: Jaegeuk Kim <jaegeuk@kernel.org>
fs/f2fs/checkpoint.c

index 620a386..3dc3ac6 100644 (file)
@@ -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);