summaryrefslogtreecommitdiffstats
path: root/fs/f2fs/file.c
diff options
context:
space:
mode:
authorChao Yu <chao@kernel.org>2023-12-10 19:35:42 +0800
committerJaegeuk Kim <jaegeuk@kernel.org>2023-12-11 13:38:40 -0800
commit4961acdd65c956e97c1a000c82d91a8c1cdbe44b (patch)
treefcfe8835d60c1d2330164a5b2cb81eeb75bda9e7 /fs/f2fs/file.c
parent87f3afd366f7c668be0269efda8a89741a3ea6b3 (diff)
downloadlinux-4961acdd65c956e97c1a000c82d91a8c1cdbe44b.tar.gz
linux-4961acdd65c956e97c1a000c82d91a8c1cdbe44b.tar.bz2
linux-4961acdd65c956e97c1a000c82d91a8c1cdbe44b.zip
f2fs: fix to tag gcing flag on page during block migration
It needs to add missing gcing flag on page during block migration, in order to garantee migrated data be persisted during checkpoint, otherwise out-of-order persistency between data and node may cause data corruption after SPOR. Similar issue was fixed by commit 2d1fe8a86bf5 ("f2fs: fix to tag gcing flag on page during file defragment"). Signed-off-by: Chao Yu <chao@kernel.org> Signed-off-by: Jaegeuk Kim <jaegeuk@kernel.org>
Diffstat (limited to 'fs/f2fs/file.c')
-rw-r--r--fs/f2fs/file.c2
1 files changed, 2 insertions, 0 deletions
diff --git a/fs/f2fs/file.c b/fs/f2fs/file.c
index 60290940018d..156b0ff05a3b 100644
--- a/fs/f2fs/file.c
+++ b/fs/f2fs/file.c
@@ -1312,6 +1312,7 @@ static int __clone_blkaddrs(struct inode *src_inode, struct inode *dst_inode,
}
memcpy_page(pdst, 0, psrc, 0, PAGE_SIZE);
set_page_dirty(pdst);
+ set_page_private_gcing(pdst);
f2fs_put_page(pdst, 1);
f2fs_put_page(psrc, 1);
@@ -4046,6 +4047,7 @@ static int redirty_blocks(struct inode *inode, pgoff_t page_idx, int len)
f2fs_bug_on(F2FS_I_SB(inode), !page);
set_page_dirty(page);
+ set_page_private_gcing(page);
f2fs_put_page(page, 1);
f2fs_put_page(page, 0);
}