X-Git-Url: http://plrg.eecs.uci.edu/git/?a=blobdiff_plain;f=fs%2Fsplice.c;h=8398974e15380dbeb8a93e56f81c69614e798323;hb=45568625feacf13f1450da6b8cec17bf97c5a3fd;hp=4cf700d50b4037e6c334b0647cdb81b816f9ef65;hpb=8cdef969803947abb4374c73d6b814b36871344d;p=firefly-linux-kernel-4.4.55.git diff --git a/fs/splice.c b/fs/splice.c index 4cf700d50b40..8398974e1538 100644 --- a/fs/splice.c +++ b/fs/splice.c @@ -185,6 +185,9 @@ ssize_t splice_to_pipe(struct pipe_inode_info *pipe, unsigned int spd_pages = spd->nr_pages; int ret, do_wakeup, page_nr; + if (!spd_pages) + return 0; + ret = 0; do_wakeup = 0; page_nr = 0; @@ -208,6 +211,7 @@ ssize_t splice_to_pipe(struct pipe_inode_info *pipe, buf->len = spd->partial[page_nr].len; buf->private = spd->partial[page_nr].private; buf->ops = spd->ops; + buf->flags = 0; if (spd->flags & SPLICE_F_GIFT) buf->flags |= PIPE_BUF_FLAG_GIFT;