From 63f1f4b6c9c805e0eebbf49de5fb19deea1bcdd8 Mon Sep 17 00:00:00 2001 From: Jan Kara Date: Thu, 26 Mar 2026 10:54:09 +0100 Subject: [PATCH] fat: Sync and invalidate metadata buffers from fat_evict_inode() There are only very few filesystems using generic metadata buffer head tracking and everybody is paying the overhead. When we remove this tracking for inode reclaim code .evict will start to see inodes with metadata buffers attached so write them out and prune them. Signed-off-by: Jan Kara Link: https://patch.msgid.link/20260326095354.16340-57-jack@suse.cz Tested-by: syzbot@syzkaller.appspotmail.com Signed-off-by: Christian Brauner --- fs/fat/inode.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/fs/fat/inode.c b/fs/fat/inode.c index 3cc5fb01afa1..ce88602b0d57 100644 --- a/fs/fat/inode.c +++ b/fs/fat/inode.c @@ -657,8 +657,10 @@ static void fat_evict_inode(struct inode *inode) if (!inode->i_nlink) { inode->i_size = 0; fat_truncate_blocks(inode, 0); - } else + } else { + sync_mapping_buffers(inode->i_mapping); fat_free_eofblocks(inode); + } invalidate_inode_buffers(inode); clear_inode(inode);