Hello, 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. Honza