[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Message-Id: <20240209111418.22308-1-jack@suse.cz>
Date: Thu, 21 Mar 2024 17:26:48 +0100
From: Jan Kara <jack@...e.cz>
To: Ted Tso <tytso@....edu>
Cc: <linux-ext4@...r.kernel.org>,
Jan Kara <jack@...e.cz>
Subject: [PATCH 0/2 v2] ext4: Create EA inodes outside of buffer lock
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.
Changes since v1:
* Rebased on top of Linus' tree as of March 21 - which meant dropping one
already merged patch and reverting one as well.
* Fixed EA inode refcount leak
Honza
Powered by blists - more mailing lists