]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
bfs: Sync and invalidate metadata buffers from bfs_evict_inode()
authorJan Kara <jack@suse.cz>
Thu, 26 Mar 2026 09:54:14 +0000 (10:54 +0100)
committerChristian Brauner <brauner@kernel.org>
Thu, 26 Mar 2026 14:03:29 +0000 (15:03 +0100)
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-62-jack@suse.cz
Tested-by: syzbot@syzkaller.appspotmail.com
Signed-off-by: Christian Brauner <brauner@kernel.org>
fs/bfs/inode.c

index 9da02f5cb6cdc7d875d026d6fec136d9d360c4ff..e0e50a9dbe9c13d26c7ec08a5d0f7f36450f3893 100644 (file)
@@ -187,6 +187,8 @@ static void bfs_evict_inode(struct inode *inode)
        dprintf("ino=%08lx\n", ino);
 
        truncate_inode_pages_final(&inode->i_data);
+       if (inode->i_nlink)
+               sync_mapping_buffers(&inode->i_data);
        invalidate_inode_buffers(inode);
        clear_inode(inode);