From a7716627dd19f0ea48f8ed785baadbb2e956a515 Mon Sep 17 00:00:00 2001 From: Jens Axboe Date: Mon, 26 Apr 2004 18:27:53 -0700 Subject: [PATCH] fix SG_IO page leak We cannot always rely on ->biotail remaining untouched. Currently we leak all the pinned user pages when doing cdda ripping at least, so I see no way around keeping the bio pointer seperate and passing it back in for unmap. Alternatively, we could invent a struct blk_map_data and put it on the stack for passing to both map and unmap. --- include/linux/blkdev.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'include/linux') diff --git a/include/linux/blkdev.h b/include/linux/blkdev.h index 150aa866348b..0fa0011d0a8f 100644 --- a/include/linux/blkdev.h +++ b/include/linux/blkdev.h @@ -522,7 +522,7 @@ extern void __blk_stop_queue(request_queue_t *q); extern void blk_run_queue(request_queue_t *); extern void blk_queue_activity_fn(request_queue_t *, activity_fn *, void *); extern struct request *blk_rq_map_user(request_queue_t *, int, void __user *, unsigned int); -extern int blk_rq_unmap_user(struct request *, void __user *, unsigned int); +extern int blk_rq_unmap_user(struct request *, void __user *, struct bio *, unsigned int); extern int blk_execute_rq(request_queue_t *, struct gendisk *, struct request *); static inline request_queue_t *bdev_get_queue(struct block_device *bdev) -- cgit v1.2.3