This is a note to let you know that I've just added the patch titled ext4: correct error label in ext4_rename() to the 4.9-stable tree which can be found at: http://www.kernel.org/git/?p=linux/kernel/git/stable/stable-queue.git;a=summary The filename of the patch is: ext4-correct-error-label-in-ext4_rename.patch and it can be found in the queue-4.9 subdirectory. If you, or anyone else, feels it should not be added to the stable tree, please let <stable@xxxxxxxxxxxxxxx> know about it. >From yi.zhang@xxxxxxxxxx Sat Apr 24 16:48:28 2021 From: Zhang Yi <yi.zhang@xxxxxxxxxx> Date: Fri, 23 Apr 2021 20:37:50 +0800 Subject: ext4: correct error label in ext4_rename() To: <stable@xxxxxxxxxxxxxxx> Cc: <gregkh@xxxxxxxxxxxxxxxxxxx>, <tytso@xxxxxxx>, <sashal@xxxxxxxxxx>, <yi.zhang@xxxxxxxxxx> Message-ID: <20210423123750.1946580-1-yi.zhang@xxxxxxxxxx> From: Zhang Yi <yi.zhang@xxxxxxxxxx> The backport of upstream patch 5dccdc5a1916 ("ext4: do not iput inode under running transaction in ext4_rename()") introduced a regression on the stable kernels 4.14 and older. One of the end_rename error label was forgetting to change to release_bh, which may trigger below bug. ------------[ cut here ]------------ kernel BUG at /home/zhangyi/hulk-4.4/fs/ext4/ext4_jbd2.c:30! ... Call Trace: [<ffffffff8b4207b2>] ext4_rename+0x9e2/0x10c0 [<ffffffff8b331324>] ? unlazy_walk+0x124/0x2a0 [<ffffffff8b420eb5>] ext4_rename2+0x25/0x60 [<ffffffff8b335104>] vfs_rename+0x3a4/0xed0 [<ffffffff8b33a7ad>] SYSC_renameat2+0x57d/0x7f0 [<ffffffff8b33c119>] SyS_renameat+0x19/0x30 [<ffffffff8bc57bb8>] entry_SYSCALL_64_fastpath+0x18/0x78 ... ---[ end trace 75346ce7c76b9f06 ]--- Fixes: f5337ec530a6 ("ext4: do not iput inode under running transaction in ext4_rename()") Signed-off-by: Zhang Yi <yi.zhang@xxxxxxxxxx> Signed-off-by: Greg Kroah-Hartman <gregkh@xxxxxxxxxxxxxxxxxxx> --- fs/ext4/namei.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) --- a/fs/ext4/namei.c +++ b/fs/ext4/namei.c @@ -3621,7 +3621,7 @@ static int ext4_rename(struct inode *old ext4_encrypted_inode(new.dir) && !fscrypt_has_permitted_context(new.dir, old.inode)) { retval = -EXDEV; - goto end_rename; + goto release_bh; } new.bh = ext4_find_entry(new.dir, &new.dentry->d_name, Patches currently in stable-queue which might be from yi.zhang@xxxxxxxxxx are queue-4.9/ext4-correct-error-label-in-ext4_rename.patch