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

Commit 18e41da8 authored by Linus Torvalds's avatar Linus Torvalds
Browse files
parents 43aa7ac7 5dc64164
Loading
Loading
Loading
Loading
+5 −0
Original line number Original line Diff line number Diff line
@@ -1481,12 +1481,17 @@ static noinline long btrfs_ioctl_clone(struct file *file, unsigned long srcfd,
		ret = -EBADF;
		ret = -EBADF;
		goto out_drop_write;
		goto out_drop_write;
	}
	}

	src = src_file->f_dentry->d_inode;
	src = src_file->f_dentry->d_inode;


	ret = -EINVAL;
	ret = -EINVAL;
	if (src == inode)
	if (src == inode)
		goto out_fput;
		goto out_fput;


	/* the src must be open for reading */
	if (!(src_file->f_mode & FMODE_READ))
		goto out_fput;

	ret = -EISDIR;
	ret = -EISDIR;
	if (S_ISDIR(src->i_mode) || S_ISDIR(inode->i_mode))
	if (S_ISDIR(src->i_mode) || S_ISDIR(inode->i_mode))
		goto out_fput;
		goto out_fput;