summaryrefslogtreecommitdiffstats
path: root/drivers/block/loop.c
diff options
context:
space:
mode:
authorRoel Kluin <roel.kluin@gmail.com>2009-03-05 08:03:53 +0100
committerJens Axboe <jens.axboe@oracle.com>2009-03-05 12:04:57 +0100
commita3941ec101a5ec54c1e929730afeb196441a171e (patch)
treef714362623fb68f2e8e462be854f0feff88b63f1 /drivers/block/loop.c
parent5e18cfd04feca78cc08a6b8b71a60a610de81eaa (diff)
downloadlinux-a3941ec101a5ec54c1e929730afeb196441a171e.tar.gz
linux-a3941ec101a5ec54c1e929730afeb196441a171e.tar.bz2
linux-a3941ec101a5ec54c1e929730afeb196441a171e.zip
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.c3
1 files changed, 1 insertions, 2 deletions
diff --git a/drivers/block/loop.c b/drivers/block/loop.c
index edbaac6c0573..bf0345577672 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))