On Fri, 09 Feb 2024 12:20:58 +0100, Jan Kara wrote: > ext4_xattr_set_entry() creates new EA inodes while holding buffer lock on the > external xattr block. This is problematic as it nests all the allocation > locking (which acquires locks on other buffers) under the buffer lock. This can > even deadlock when the filesystem is corrupted and e.g. quota file is setup to > contain xattr block as data block as syzbot has spotted. This series moves > the allocation of EA inode to happen outside of the buffer lock which is > generally more sensible and also fixes the syzbot reproducer. > > [...] Applied, thanks! [1/3] ext4: Fold quota accounting into ext4_xattr_inode_lookup_create() commit: 8208c41c43ad5e9b63dce6c45a73e326109ca658 [2/3] ext4: Do not create EA inode under buffer lock commit: ea554578483b351693923be42bcff139c8023552 [3/3] ext4: Drop duplicate ea_inode handling in ext4_xattr_block_set() commit: 72e38f8615148d118ffb82f9055068f8c491c385 Best regards, -- Theodore Ts'o <tytso@xxxxxxx>