From: Dan Carpenter Date: Fri, 5 Mar 2010 21:42:51 +0000 (-0800) Subject: splice: comparing unsigned int < 0 X-Git-Tag: v2.6.34-rc1~127 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=5f1664f92b2247111b7d37e454a050b76ac61b7f;p=platform%2Fkernel%2Flinux-3.10.git splice: comparing unsigned int < 0 "ret" needs to be signed or the error handling for splice_to_pipe() won't work correctly. Signed-off-by: Dan Carpenter Cc: Tom Zanussi Cc: Jens Axboe Cc: Lai Jiangshan Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds --- diff --git a/kernel/relay.c b/kernel/relay.c index c705a41..3d97f28 100644 --- a/kernel/relay.c +++ b/kernel/relay.c @@ -1215,14 +1215,14 @@ 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 */ -static int subbuf_splice_actor(struct file *in, +static ssize_t subbuf_splice_actor(struct file *in, loff_t *ppos, struct pipe_inode_info *pipe, size_t len, unsigned int flags, int *nonpad_ret) { - unsigned int pidx, poff, total_len, subbuf_pages, nr_pages, ret; + unsigned int pidx, poff, total_len, subbuf_pages, nr_pages; struct rchan_buf *rbuf = in->private_data; unsigned int subbuf_size = rbuf->chan->subbuf_size; uint64_t pos = (uint64_t) *ppos; @@ -1241,6 +1241,7 @@ static int subbuf_splice_actor(struct file *in, .ops = &relay_pipe_buf_ops, .spd_release = relay_page_release, }; + ssize_t ret; if (rbuf->subbufs_produced == rbuf->subbufs_consumed) return 0;