Browse Source

vfs: wire up compat ioctl for CLONE/CLONE_RANGE

Signed-off-by: Darrick J. Wong <darrick.wong@oracle.com>
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Darrick J. Wong 9 years ago
parent
commit
d79bdd52d8
2 changed files with 5 additions and 1 deletions
  1. 4 0
      fs/compat_ioctl.c
  2. 1 1
      fs/read_write.c

+ 4 - 0
fs/compat_ioctl.c

@@ -1580,6 +1580,10 @@ COMPAT_SYSCALL_DEFINE3(ioctl, unsigned int, fd, unsigned int, cmd,
 		goto out_fput;
 		goto out_fput;
 #endif
 #endif
 
 
+	case FICLONE:
+	case FICLONERANGE:
+		goto do_ioctl;
+
 	case FIBMAP:
 	case FIBMAP:
 	case FIGETBSZ:
 	case FIGETBSZ:
 	case FIONREAD:
 	case FIONREAD:

+ 1 - 1
fs/read_write.c

@@ -1489,7 +1489,7 @@ int vfs_clone_file_range(struct file *file_in, loff_t pos_in,
 	if (S_ISDIR(inode_in->i_mode) || S_ISDIR(inode_out->i_mode))
 	if (S_ISDIR(inode_in->i_mode) || S_ISDIR(inode_out->i_mode))
 		return -EISDIR;
 		return -EISDIR;
 	if (!S_ISREG(inode_in->i_mode) || !S_ISREG(inode_out->i_mode))
 	if (!S_ISREG(inode_in->i_mode) || !S_ISREG(inode_out->i_mode))
-		return -EOPNOTSUPP;
+		return -EINVAL;
 
 
 	if (!(file_in->f_mode & FMODE_READ) ||
 	if (!(file_in->f_mode & FMODE_READ) ||
 	    !(file_out->f_mode & FMODE_WRITE) ||
 	    !(file_out->f_mode & FMODE_WRITE) ||