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

Commit 5eb7f9fa authored by Jens Axboe's avatar Jens Axboe
Browse files

relay: set an spd_release() hook for splice



relay doesn't reference the pages it adds, however we need a non-NULL
hook or splice_to_pipe() can oops.

Signed-off-by: default avatarJens Axboe <jens.axboe@oracle.com>
parent 37529fe9
Loading
Loading
Loading
Loading
+5 −0
Original line number Diff line number Diff line
@@ -1056,6 +1056,10 @@ static struct pipe_buf_operations relay_pipe_buf_ops = {
	.get = generic_pipe_buf_get,
};

static void relay_page_release(struct splice_pipe_desc *spd, unsigned int i)
{
}

/*
 *	subbuf_splice_actor - splice up to one subbuf's worth of data
 */
@@ -1083,6 +1087,7 @@ static int subbuf_splice_actor(struct file *in,
		.partial = partial,
		.flags = flags,
		.ops = &relay_pipe_buf_ops,
		.spd_release = relay_page_release,
	};

	if (rbuf->subbufs_produced == rbuf->subbufs_consumed)