aboutsummaryrefslogtreecommitdiffstats
path: root/fs/splice.c
diff options
context:
space:
mode:
Diffstat (limited to 'fs/splice.c')
-rw-r--r--fs/splice.c6
1 files changed, 2 insertions, 4 deletions
diff --git a/fs/splice.c b/fs/splice.c
index 41900496d3bb..efdbfece9932 100644
--- a/fs/splice.c
+++ b/fs/splice.c
@@ -1372,8 +1372,7 @@ static long do_splice(struct file *in, loff_t __user *off_in,
1372 if (off_in) 1372 if (off_in)
1373 return -ESPIPE; 1373 return -ESPIPE;
1374 if (off_out) { 1374 if (off_out) {
1375 if (!out->f_op || !out->f_op->llseek || 1375 if (!(out->f_mode & FMODE_PWRITE))
1376 out->f_op->llseek == no_llseek)
1377 return -EINVAL; 1376 return -EINVAL;
1378 if (copy_from_user(&offset, off_out, sizeof(loff_t))) 1377 if (copy_from_user(&offset, off_out, sizeof(loff_t)))
1379 return -EFAULT; 1378 return -EFAULT;
@@ -1393,8 +1392,7 @@ static long do_splice(struct file *in, loff_t __user *off_in,
1393 if (off_out) 1392 if (off_out)
1394 return -ESPIPE; 1393 return -ESPIPE;
1395 if (off_in) { 1394 if (off_in) {
1396 if (!in->f_op || !in->f_op->llseek || 1395 if (!(in->f_mode & FMODE_PREAD))
1397 in->f_op->llseek == no_llseek)
1398 return -EINVAL; 1396 return -EINVAL;
1399 if (copy_from_user(&offset, off_in, sizeof(loff_t))) 1397 if (copy_from_user(&offset, off_in, sizeof(loff_t)))
1400 return -EFAULT; 1398 return -EFAULT;