Skip to content

Commit

Permalink
[PATCH] splice: fix smaller sized splice reads
Browse files Browse the repository at this point in the history
Signed-off-by: Jens Axboe <axboe@suse.de>
  • Loading branch information
Jens Axboe committed Apr 20, 2006
1 parent a0aa7f6 commit 82aa5d6
Showing 1 changed file with 12 additions and 1 deletion.
13 changes: 12 additions & 1 deletion fs/splice.c
Original file line number Diff line number Diff line change
Expand Up @@ -275,6 +275,15 @@ __generic_file_splice_read(struct file *in, loff_t *ppos,
error = 0;
bytes = 0;
for (i = 0; i < nr_pages; i++, index++) {
unsigned int this_len;

if (!len)
break;

/*
* this_len is the max we'll use from this page
*/
this_len = min(len, PAGE_CACHE_SIZE - loff);
find_page:
/*
* lookup the page for this index
Expand Down Expand Up @@ -366,11 +375,13 @@ __generic_file_splice_read(struct file *in, loff_t *ppos,
* force quit after adding this page
*/
nr_pages = i;
this_len = min(this_len, loff);
}
}
fill_it:
pages[i] = page;
bytes += PAGE_CACHE_SIZE - loff;
bytes += this_len;
len -= this_len;
loff = 0;
}

Expand Down

0 comments on commit 82aa5d6

Please sign in to comment.