mirror of
https://mirrors.bfsu.edu.cn/git/linux.git
synced 2024-11-30 23:54:04 +08:00
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 2d1fe8a86b
("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>
This commit is contained in:
parent
87f3afd366
commit
4961acdd65
@ -1036,8 +1036,10 @@ static void set_cluster_dirty(struct compress_ctx *cc)
|
||||
int i;
|
||||
|
||||
for (i = 0; i < cc->cluster_size; i++)
|
||||
if (cc->rpages[i])
|
||||
if (cc->rpages[i]) {
|
||||
set_page_dirty(cc->rpages[i]);
|
||||
set_page_private_gcing(cc->rpages[i]);
|
||||
}
|
||||
}
|
||||
|
||||
static int prepare_compress_overwrite(struct compress_ctx *cc,
|
||||
|
@ -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);
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user