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 <error27@gmail.com> Cc: Tom Zanussi <zanussi@comcast.net> Cc: Jens Axboe <jens.axboe@oracle.com> Cc: Lai Jiangshan <laijs@cn.fujitsu.com> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
This commit is contained in:
parent
0347af4ee3
commit
5f1664f92b
1 changed files with 3 additions and 2 deletions
|
@ -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;
|
||||
|
|
Loading…
Reference in a new issue