]> git.hungrycats.org Git - linux/commitdiff
f2fs: atomic: fix to truncate pagecache before on-disk metadata truncation
authorChao Yu <chao@kernel.org>
Wed, 7 Aug 2024 10:24:35 +0000 (18:24 +0800)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Fri, 4 Oct 2024 14:33:15 +0000 (16:33 +0200)
[ Upstream commit ebd3309aec6271c4616573b0cb83ea25e623070a ]

We should always truncate pagecache while truncating on-disk data.

Fixes: a46bebd502fe ("f2fs: synchronize atomic write aborts")
Signed-off-by: Chao Yu <chao@kernel.org>
Signed-off-by: Jaegeuk Kim <jaegeuk@kernel.org>
Signed-off-by: Sasha Levin <sashal@kernel.org>
fs/f2fs/file.c

index 8425fc33ea403c66494183e6e095756f446c51c8..b2763cde3f582cf3304893844ab0d5d4494fb5bd 100644 (file)
@@ -2185,6 +2185,10 @@ 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 */
+               f2fs_bug_on(sbi, get_dirty_pages(fi->cow_inode));
+
+               invalidate_mapping_pages(fi->cow_inode->i_mapping, 0, -1);
+
                ret = f2fs_do_truncate_blocks(fi->cow_inode, 0, true);
                if (ret) {
                        f2fs_up_write(&fi->i_gc_rwsem[WRITE]);