]> git.baikalelectronics.ru Git - kernel.git/commit
ext4: Fix deadlock during directory rename
authorJan Kara <jack@suse.cz>
Wed, 1 Mar 2023 14:10:04 +0000 (15:10 +0100)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Fri, 17 Mar 2023 07:50:29 +0000 (08:50 +0100)
commitf8d77b59af422873faa66c5230b0f5c176e60567
tree11c9744ef8452b340d6beb63ec06b834fdd38c79
parent5b9e109b4eb06af5d5faf7ccddf66e25d44a7bf1
ext4: Fix deadlock during directory rename

[ Upstream commit 2c3cd70f67998ee9ea2f60c2e4b509ba45b7870b ]

As lockdep properly warns, we should not be locking i_rwsem while having
transactions started as the proper lock ordering used by all directory
handling operations is i_rwsem -> transaction start. Fix the lock
ordering by moving the locking of the directory earlier in
ext4_rename().

Reported-by: syzbot+9d16c39efb5fade84574@syzkaller.appspotmail.com
Fixes: 9561e8b4f5bb ("ext4: Fix possible corruption when moving a directory")
Link: https://syzkaller.appspot.com/bug?extid=9d16c39efb5fade84574
Signed-off-by: Jan Kara <jack@suse.cz>
Link: https://lore.kernel.org/r/20230301141004.15087-1-jack@suse.cz
Signed-off-by: Theodore Ts'o <tytso@mit.edu>
Signed-off-by: Sasha Levin <sashal@kernel.org>
fs/ext4/namei.c