diff options
author | Roel Kluin <roel.kluin@gmail.com> | 2009-03-05 08:03:53 +0100 |
---|---|---|
committer | Jens Axboe <jens.axboe@oracle.com> | 2009-03-05 12:04:57 +0100 |
commit | a3941ec101a5ec54c1e929730afeb196441a171e (patch) | |
tree | f714362623fb68f2e8e462be854f0feff88b63f1 /drivers/block/loop.c | |
parent | 5e18cfd04feca78cc08a6b8b71a60a610de81eaa (diff) | |
download | op-kernel-dev-a3941ec101a5ec54c1e929730afeb196441a171e.zip op-kernel-dev-a3941ec101a5ec54c1e929730afeb196441a171e.tar.gz |
loop: don't increment p->offset with (size_t) -EINVAL
Upon a 'transfer error block' size is set to -EINVAL, but this becomes positive
since size is unsigned: p->offset still gets incremented.
Signed-off-by: Roel Kluin <roel.kluin@gmail.com>
Signed-off-by: Jens Axboe <jens.axboe@oracle.com>
Diffstat (limited to 'drivers/block/loop.c')
-rw-r--r-- | drivers/block/loop.c | 3 |
1 files changed, 1 insertions, 2 deletions
diff --git a/drivers/block/loop.c b/drivers/block/loop.c index edbaac6..bf03455 100644 --- a/drivers/block/loop.c +++ b/drivers/block/loop.c @@ -392,8 +392,7 @@ lo_splice_actor(struct pipe_inode_info *pipe, struct pipe_buffer *buf, struct loop_device *lo = p->lo; struct page *page = buf->page; sector_t IV; - size_t size; - int ret; + int size, ret; ret = buf->ops->confirm(pipe, buf); if (unlikely(ret)) |