Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit a9a92642 authored by Jan Kara's avatar Jan Kara Committed by Greg Kroah-Hartman
Browse files

ext4: Remove ext4 locking of moved directory



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: default avatarJan Kara <jack@suse.cz>
Message-Id: <20230601105830.13168-1-jack@suse.cz>
Signed-off-by: default avatarChristian Brauner <brauner@kernel.org>
Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
parent eefebf88
Loading
Loading
Loading
Loading
+2 −15
Original line number Diff line number Diff line
@@ -3795,19 +3795,10 @@ static int ext4_rename(struct inode *old_dir, struct dentry *old_dentry,
			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.
@@ -3968,10 +3959,6 @@ static int ext4_rename(struct inode *old_dir, struct dentry *old_dentry,
	brelse(old.bh);
	brelse(new.bh);

unlock_moved_dir:
	if (S_ISDIR(old.inode->i_mode))
		inode_unlock(old.inode);

	return retval;
}