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

index 7fae8002344a0e1e7e51022e97f1e0e2424185f9..739b190ca4e936ecedbe1b454aa0b42a66eeb148 100644 (file)
@@ -154,6 +154,8 @@ void udf_evict_inode(struct inode *inode)
                }
        }
        truncate_inode_pages_final(&inode->i_data);
+       if (!want_delete)
+               sync_mapping_buffers(&inode->i_data);
        invalidate_inode_buffers(inode);
        clear_inode(inode);
        kfree(iinfo->i_data);