]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
ext2: Sync and invalidate metadata buffers from ext2_evict_inode()
authorJan Kara <jack@suse.cz>
Thu, 26 Mar 2026 09:54:12 +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-60-jack@suse.cz
Tested-by: syzbot@syzkaller.appspotmail.com
Signed-off-by: Christian Brauner <brauner@kernel.org>
fs/ext2/inode.c

index dbfe9098a1245d97ba97cff24395754197043c33..fb91c61aa6d6f2ccec2cbb34704868954733431a 100644 (file)
@@ -94,8 +94,9 @@ void ext2_evict_inode(struct inode * inode)
                if (inode->i_blocks)
                        ext2_truncate_blocks(inode, 0);
                ext2_xattr_delete_inode(inode);
+       } else {
+               sync_mapping_buffers(&inode->i_data);
        }
-
        invalidate_inode_buffers(inode);
        clear_inode(inode);