fix incorrect error code mapping for OBJECTID_NOT_FOUND
[GitHub/LineageOS/android_kernel_motorola_exynos9610.git] / fs / splice.c
index ae41201d032581a7c03f00a5cc86287782e000d4..00d2f142dcf98381aa8fd7edd58a12b495b974fe 100644 (file)
@@ -364,22 +364,6 @@ static ssize_t kernel_readv(struct file *file, const struct kvec *vec,
        return res;
 }
 
-ssize_t kernel_write(struct file *file, const char *buf, size_t count,
-                           loff_t pos)
-{
-       mm_segment_t old_fs;
-       ssize_t res;
-
-       old_fs = get_fs();
-       set_fs(get_ds());
-       /* The cast to a user pointer is valid due to the set_fs() */
-       res = vfs_write(file, (__force const char __user *)buf, count, &pos);
-       set_fs(old_fs);
-
-       return res;
-}
-EXPORT_SYMBOL(kernel_write);
-
 static ssize_t default_file_splice_read(struct file *in, loff_t *ppos,
                                 struct pipe_inode_info *pipe, size_t len,
                                 unsigned int flags)
@@ -1596,6 +1580,8 @@ retry:
                         */
                        obuf->flags &= ~PIPE_BUF_FLAG_GIFT;
 
+                       pipe_buf_mark_unmergeable(obuf);
+
                        obuf->len = len;
                        opipe->nrbufs++;
                        ibuf->offset += obuf->len;
@@ -1670,6 +1656,8 @@ static int link_pipe(struct pipe_inode_info *ipipe,
                 */
                obuf->flags &= ~PIPE_BUF_FLAG_GIFT;
 
+               pipe_buf_mark_unmergeable(obuf);
+
                if (obuf->len > len)
                        obuf->len = len;