From: Jan Kara jack@suse.cz
commit 3658840cd363f2be094f5dfd2f0b174a9055dd0f upstream.
Remove locking of moved directory in ext4_rename2(). We will take care of it in VFS instead. This effectively reverts commit 0813299c586b ("ext4: Fix possible corruption when moving a directory") and followup fixes.
CC: Ted Tso tytso@mit.edu CC: stable@vger.kernel.org Signed-off-by: Jan Kara jack@suse.cz Message-Id: 20230601105830.13168-1-jack@suse.cz Signed-off-by: Christian Brauner brauner@kernel.org Signed-off-by: Greg Kroah-Hartman gregkh@linuxfoundation.org --- fs/ext4/namei.c | 17 ++--------------- 1 file changed, 2 insertions(+), 15 deletions(-)
--- a/fs/ext4/namei.c +++ b/fs/ext4/namei.c @@ -3863,19 +3863,10 @@ static int ext4_rename(struct inode *old return retval; }
- /* - * We need to protect against old.inode directory getting converted - * from inline directory format into a normal one. - */ - if (S_ISDIR(old.inode->i_mode)) - inode_lock_nested(old.inode, I_MUTEX_NONDIR2); - old.bh = ext4_find_entry(old.dir, &old.dentry->d_name, &old.de, &old.inlined); - if (IS_ERR(old.bh)) { - retval = PTR_ERR(old.bh); - goto unlock_moved_dir; - } + if (IS_ERR(old.bh)) + return PTR_ERR(old.bh);
/* * Check for inode number is _not_ due to possible IO errors. @@ -4065,10 +4056,6 @@ release_bh: brelse(old.bh); brelse(new.bh);
-unlock_moved_dir: - if (S_ISDIR(old.inode->i_mode)) - inode_unlock(old.inode); - return retval; }