Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit c3270e57 authored by Tom Zanussi's avatar Tom Zanussi Committed by Jens Axboe
Browse files

relay: fix splice problem



Splice isn't always incrementing the ppos correctly, which broke
relay splice.

Signed-off-by: default avatarTom Zanussi <zanussi@comcast.net>
Signed-off-by: default avatarJens Axboe <jens.axboe@oracle.com>
parent a01e035e
Loading
Loading
Loading
Loading
+1 −1
Original line number Original line Diff line number Diff line
@@ -1075,7 +1075,7 @@ long do_splice_direct(struct file *in, loff_t *ppos, struct file *out,


	ret = splice_direct_to_actor(in, &sd, direct_splice_actor);
	ret = splice_direct_to_actor(in, &sd, direct_splice_actor);
	if (ret > 0)
	if (ret > 0)
		*ppos += ret;
		*ppos = sd.pos;


	return ret;
	return ret;
}
}
+1 −1
Original line number Original line Diff line number Diff line
@@ -1162,7 +1162,7 @@ static ssize_t relay_file_splice_read(struct file *in,
	ret = 0;
	ret = 0;
	spliced = 0;
	spliced = 0;


	while (len) {
	while (len && !spliced) {
		ret = subbuf_splice_actor(in, ppos, pipe, len, flags, &nonpad_ret);
		ret = subbuf_splice_actor(in, ppos, pipe, len, flags, &nonpad_ret);
		if (ret < 0)
		if (ret < 0)
			break;
			break;