On 2024/3/13 19:26, Sunmin Jeong wrote:
In f2fs_do_write_data_page, FI_ATOMIC_FILE flag selects the target inode
between the original inode and COW inode. When aborting atomic write and
writeback occur simultaneously, invalid data can be written to original
inode if the FI_ATOMIC_FILE flag is cleared meanwhile.

To prevent the problem, let's truncate all pages before clearing the flag

Atomic write thread              Writeback thread
   f2fs_abort_atomic_write
     clear_inode_flag(inode, FI_ATOMIC_FILE)
                                   __writeback_single_inode
                                     do_writepages
                                       f2fs_do_write_data_page
                                         - use dn of original inode
     truncate_inode_pages_final

Fixes: 3db1de0e582c ("f2fs: change the current atomic write way")
Cc: sta...@vger.kernel.org #v5.19+
Reviewed-by: Sungjong Seo <sj1557....@samsung.com>
Reviewed-by: Yeongjin Gil <youngjin....@samsung.com>
Signed-off-by: Sunmin Jeong <s_min.je...@samsung.com>

Reviewed-by: Chao Yu <c...@kernel.org>

Thanks,


_______________________________________________
Linux-f2fs-devel mailing list
Linux-f2fs-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/linux-f2fs-devel

Reply via email to