Commit 7fdeb23f authored by Linus Torvalds's avatar Linus Torvalds
Browse files
Pull vfs fixes from Christian Brauner:
 "This contains two minor fixes for Jan's rename locking work:

   - Unlocking the source inode was guarded by a check whether source
     was non-NULL. This doesn't make sense because source must be
     non-NULL and the commit message explains in detail why

   - The lock_two_nondirectories() helper called WARN_ON_ONCE() and
     dereferenced the inodes unconditionally but the underlying
     lock_two_inodes() helper and the kernel documentation for that
     function are clear that it is valid to pass NULL arguments, so a
     non-NULL check is needed. No callers currently pass NULL arguments
     but let's not knowingly leave landmines around"

* tag 'v6.5/vfs.fixes.2' of git://git.kernel.org/pub/scm/linux/kernel/git/vfs/vfs:
  fs: don't assume arguments are non-NULL
  fs: no need to check source
parents a4524835 33ab231f
Loading
Loading
Loading
Loading
+4 −2
Original line number Diff line number Diff line
@@ -1156,7 +1156,9 @@ void lock_two_inodes(struct inode *inode1, struct inode *inode2,
 */
void lock_two_nondirectories(struct inode *inode1, struct inode *inode2)
{
	if (inode1)
		WARN_ON_ONCE(S_ISDIR(inode1->i_mode));
	if (inode2)
		WARN_ON_ONCE(S_ISDIR(inode2->i_mode));
	lock_two_inodes(inode1, inode2, I_MUTEX_NORMAL, I_MUTEX_NONDIR2);
}
+1 −2
Original line number Diff line number Diff line
@@ -4874,7 +4874,6 @@ int vfs_rename(struct renamedata *rd)
			d_exchange(old_dentry, new_dentry);
	}
out:
	if (source)
	inode_unlock(source);
	if (target)
		inode_unlock(target);