Skip to content

Commit

Permalink
fix default_file_splice_read()
Browse files Browse the repository at this point in the history
Botched calculation of number of pages.  As the result,
we were dropping pieces when doing splice to pipe from
e.g. 9p.

Reported-by: Alexei Starovoitov <ast@kernel.org>
Tested-by: Alexei Starovoitov <ast@kernel.org>
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
  • Loading branch information
Al Viro committed Nov 27, 2016
1 parent 3ad0e83 commit 8e54cad
Showing 1 changed file with 2 additions and 1 deletion.
3 changes: 2 additions & 1 deletion fs/splice.c
Original file line number Diff line number Diff line change
Expand Up @@ -408,7 +408,8 @@ static ssize_t default_file_splice_read(struct file *in, loff_t *ppos,
if (res <= 0)
return -ENOMEM;

nr_pages = res / PAGE_SIZE;
BUG_ON(dummy);
nr_pages = DIV_ROUND_UP(res, PAGE_SIZE);

vec = __vec;
if (nr_pages > PIPE_DEF_BUFFERS) {
Expand Down

0 comments on commit 8e54cad

Please sign in to comment.