]> git.ipfire.org Git - thirdparty/kernel/stable.git/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:38:19 +0000 (16:38 +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 e178e3ebde04ea9beafcfd4edbd9d8f0ffeb1365..5558a75f29b79c81e405c6fabea10f25f2e9e051 100644 (file)
@@ -2184,6 +2184,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]);