Revert "relay: fix splice problem"
authorJens Axboe <jens.axboe@oracle.com>
Thu, 8 May 2008 12:06:19 +0000 (14:06 +0200)
committerJens Axboe <jens.axboe@oracle.com>
Thu, 8 May 2008 12:06:19 +0000 (14:06 +0200)
This reverts commit c3270e577c18b3d0e984c3371493205a4807db9d.

fs/splice.c
kernel/relay.c

index cece15b4ef72e4d82f08c76fa4a41ea9b3093318..78150038b58422155b2a89e47e8a228967f0ca3d 100644 (file)
@@ -1072,7 +1072,7 @@ long do_splice_direct(struct file *in, loff_t *ppos, struct file *out,
 
        ret = splice_direct_to_actor(in, &sd, direct_splice_actor);
        if (ret > 0)
-               *ppos = sd.pos;
+               *ppos += ret;
 
        return ret;
 }
index 7de644cdec43590be390d3037206e5722aa46856..bc24dcdc570f5dfa222edbff1c1a2d80e23cb7e1 100644 (file)
@@ -1191,7 +1191,7 @@ static ssize_t relay_file_splice_read(struct file *in,
        ret = 0;
        spliced = 0;
 
-       while (len && !spliced) {
+       while (len) {
                ret = subbuf_splice_actor(in, ppos, pipe, len, flags, &nonpad_ret);
                if (ret < 0)
                        break;