Re: [f2fs-dev] [PATCH] f2fs: flush data when enabling checkpoint back

2021-01-27 Thread Chao Yu

On 2021/1/27 9:44, Jaegeuk Kim wrote:

During checkpoint=disable period, f2fs bypasses all the synchronous IOs such as
sync and fsync. So, when enabling it back, we must flush all of them in order
to keep the data persistent. Otherwise, suddern power-cut right after enabling
checkpoint will cause data loss.

Fixes: 4354994f097d ("f2fs: checkpoint disabling")
Cc: sta...@vger.kernel.org
Signed-off-by: Jaegeuk Kim 


Reviewed-by: Chao Yu 

Thanks,


[PATCH] f2fs: flush data when enabling checkpoint back

2021-01-26 Thread Jaegeuk Kim
During checkpoint=disable period, f2fs bypasses all the synchronous IOs such as
sync and fsync. So, when enabling it back, we must flush all of them in order
to keep the data persistent. Otherwise, suddern power-cut right after enabling
checkpoint will cause data loss.

Fixes: 4354994f097d ("f2fs: checkpoint disabling")
Cc: sta...@vger.kernel.org
Signed-off-by: Jaegeuk Kim 
---
 fs/f2fs/super.c | 3 +++
 1 file changed, 3 insertions(+)

diff --git a/fs/f2fs/super.c b/fs/f2fs/super.c
index 359cc5a2f8f5..073b51af62c8 100644
--- a/fs/f2fs/super.c
+++ b/fs/f2fs/super.c
@@ -1887,6 +1887,9 @@ static int f2fs_disable_checkpoint(struct f2fs_sb_info 
*sbi)
 
 static void f2fs_enable_checkpoint(struct f2fs_sb_info *sbi)
 {
+   /* we should flush all the data to keep data consistency */
+   sync_inodes_sb(sbi->sb);
+
down_write(>gc_lock);
f2fs_dirty_to_prefree(sbi);
 
-- 
2.30.0.280.ga3ce27912f-goog