summaryrefslogtreecommitdiff
path: root/kernel/relay.c
diff options
context:
space:
mode:
authorTom Zanussi <zanussi@comcast.net>2008-05-09 13:28:36 +0200
committerJens Axboe <jens.axboe@oracle.com>2008-05-28 14:49:27 +0200
commita82c53a0e3f57f02782330372b7adad67b417645 (patch)
tree3a4e65ab1a2420f8fc5d0091a6992d6f7e430ad8 /kernel/relay.c
parent1ec7d99c16e69a9ed8ffeaa6c1846025b84bebad (diff)
downloadlwn-a82c53a0e3f57f02782330372b7adad67b417645.tar.gz
lwn-a82c53a0e3f57f02782330372b7adad67b417645.zip
splice: fix sendfile() issue with relay
Splice isn't always incrementing the ppos correctly, which broke relay splice. Signed-off-by: Tom Zanussi <zanussi@comcast.net> Tested-by: Dan Williams <dan.j.williams@intel.com> Signed-off-by: Jens Axboe <jens.axboe@oracle.com>
Diffstat (limited to 'kernel/relay.c')
-rw-r--r--kernel/relay.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/kernel/relay.c b/kernel/relay.c
index bc24dcdc570f..7de644cdec43 100644
--- a/kernel/relay.c
+++ b/kernel/relay.c
@@ -1191,7 +1191,7 @@ static ssize_t relay_file_splice_read(struct file *in,
ret = 0;
spliced = 0;
- while (len) {
+ while (len && !spliced) {
ret = subbuf_splice_actor(in, ppos, pipe, len, flags, &nonpad_ret);
if (ret < 0)
break;