diff options
| author | Jan Kara <jack@suse.cz> | 2026-03-26 12:54:09 +0300 |
|---|---|---|
| committer | Christian Brauner <brauner@kernel.org> | 2026-03-26 17:03:28 +0300 |
| commit | 63f1f4b6c9c805e0eebbf49de5fb19deea1bcdd8 (patch) | |
| tree | e91f1ee8cfb01d03428c31aa843e45dda07b3d67 | |
| parent | 5f36c9ca33336036a087b270e68e8236c733f448 (diff) | |
| download | linux-63f1f4b6c9c805e0eebbf49de5fb19deea1bcdd8.tar.xz | |
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 <jack@suse.cz>
Link: https://patch.msgid.link/20260326095354.16340-57-jack@suse.cz
Tested-by: syzbot@syzkaller.appspotmail.com
Signed-off-by: Christian Brauner <brauner@kernel.org>
| -rw-r--r-- | fs/fat/inode.c | 4 |
1 files changed, 3 insertions, 1 deletions
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); |
