summaryrefslogtreecommitdiff
path: root/fs
diff options
context:
space:
mode:
authorTheodore Ts'o <tytso@mit.edu>2023-03-18 04:53:52 +0300
committerTheodore Ts'o <tytso@mit.edu>2023-03-18 04:53:52 +0300
commit70e42feab2e20618ddd0cbfc4ab4b08628236ecd (patch)
treee5d7cb0bf3ac2b4207ad1e7db3e96bfe09fc3134 /fs
parenteeac8ede17557680855031c6f305ece2378af326 (diff)
downloadlinux-70e42feab2e20618ddd0cbfc4ab4b08628236ecd.tar.xz
ext4: fix possible double unlock when moving a directory
Fixes: 0813299c586b ("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>
Diffstat (limited to 'fs')
-rw-r--r--fs/ext4/namei.c4
1 files changed, 1 insertions, 3 deletions
diff --git a/fs/ext4/namei.c b/fs/ext4/namei.c
index 31e21de56432..a5010b5b8a8c 100644
--- a/fs/ext4/namei.c
+++ b/fs/ext4/namei.c
@@ -3884,10 +3884,8 @@ static int ext4_rename(struct mnt_idmap *idmap, 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