]> git.ipfire.org Git - thirdparty/kernel/linux.git/commit
fat: Fix missed inode writeback during fsync(2)
authorJan Kara <jack@suse.cz>
Mon, 27 Jul 2026 10:49:36 +0000 (12:49 +0200)
committerChristian Brauner <brauner@kernel.org>
Mon, 27 Jul 2026 14:25:33 +0000 (16:25 +0200)
commit525da4f40a7cee013a89ba11d65806d0c0346d39
treeead028e7b20e488f31bbc93e2969a6b25a5e2287
parentc26339e1df335423bcbb83d6fa6ff94b1545b8ed
fat: Fix missed inode writeback during fsync(2)

FAT could fail to properly write out inode on fsync(2) due to races with
WB_SYNC_NONE writeback. Several racing fsyncs could also result in some
fsync returning earlier than all metadata buffers were properly
persisted.

Fix these issues by using new .sync_inode_metadata method which makes
sure all inode related metadata is written to disk during any
WB_SYNC_ALL writeback. The slight disadvantage of this approach is that
when fsync(2) of an inode races with rename(2) of the inode, the window
during which inode isn't properly persisted becomes wider.

Signed-off-by: Jan Kara <jack@suse.cz>
Link: https://patch.msgid.link/20260727104923.3828017-38-jack@suse.cz
Signed-off-by: Christian Brauner (Amutable) <brauner@kernel.org>
fs/fat/file.c
fs/fat/inode.c