]> git.baikalelectronics.ru Git - kernel.git/commitdiff
ext4: fix possible double unlock when moving a directory
authorTheodore Ts'o <tytso@mit.edu>
Sat, 18 Mar 2023 01:53:52 +0000 (21:53 -0400)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Wed, 22 Mar 2023 12:33:55 +0000 (13:33 +0100)
commit ae7f28a94c8fca8514e031ba80fb5c6161e730b2 upstream.

Fixes: 9561e8b4f5bb ("ext4: Fix possible corruption when moving a directory")
Link: https://lore.kernel.org/r/5efbe1b9-ad8b-4a4f-b422-24824d2b775c@kili.mountain
Reported-by: Dan Carpenter <error27@gmail.com>
Reported-by: syzbot+0c73d1d8b952c5f3d714@syzkaller.appspotmail.com
Signed-off-by: Theodore Ts'o <tytso@mit.edu>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
fs/ext4/namei.c

index 800d631c920b4ae4700b7835bc7c6a8cd767a52c..56f09598448b4c6956728b22667288b3769ab353 100644 (file)
@@ -3884,10 +3884,8 @@ static int ext4_rename(struct user_namespace *mnt_userns, struct inode *old_dir,
                                goto end_rename;
                }
                retval = ext4_rename_dir_prepare(handle, &old);
-               if (retval) {
-                       inode_unlock(old.inode);
+               if (retval)
                        goto end_rename;
-               }
        }
        /*
         * If we're renaming a file within an inline_data dir and adding or