On 07/30, Chao Yu wrote:
On 2024/7/30 0:26, Jaegeuk Kim wrote:
On 07/26, Chao Yu wrote:
We should always truncate pagecache while truncating on-disk data.
Fixes: a46bebd502fe ("f2fs: synchronize atomic write aborts")
Signed-off-by: Chao Yu <chao@xxxxxxxxxx>
---
v2:
- fix to use cow_inode instead of inode
fs/f2fs/file.c | 1 +
1 file changed, 1 insertion(+)
diff --git a/fs/f2fs/file.c b/fs/f2fs/file.c
index 6c62f76474d1..54886ddcb8ab 100644
--- a/fs/f2fs/file.c
+++ b/fs/f2fs/file.c
@@ -2202,6 +2202,7 @@ static int f2fs_ioc_start_atomic_write(struct file *filp, bool truncate)
F2FS_I(fi->cow_inode)->atomic_inode = inode;
} else {
/* Reuse the already created COW inode */
+ truncate_setsize(fi->cow_inode, 0);
What if the below truncation failed?
What about just dropping page cache and do not set isize to 0?
Can we also check if there's any dirty page before truncating it?
Thanks,
ret = f2fs_do_truncate_blocks(fi->cow_inode, 0, true);
if (ret) {
f2fs_up_write(&fi->i_gc_rwsem[WRITE]);
--
2.40.1