diff options
author | Mike Christie <michaelc@cs.wisc.edu> | 2006-12-01 04:40:55 -0500 |
---|---|---|
committer | Jens Axboe <jens.axboe@oracle.com> | 2006-12-01 04:40:55 -0500 |
commit | 0e75f9063f5c55fb0b0b546a7c356f8ec186825e (patch) | |
tree | db138f641175403546c2147def4b405f3ff453a8 /drivers/cdrom/cdrom.c | |
parent | ad2d7225709b11da47e092634cbdf0591829ae9c (diff) |
[PATCH] block: support larger block pc requests
This patch modifies blk_rq_map/unmap_user() and the cdrom and scsi_ioctl.c
users so that it supports requests larger than bio by chaining them together.
Signed-off-by: Mike Christie <michaelc@cs.wisc.edu>
Signed-off-by: Jens Axboe <jens.axboe@oracle.com>
Diffstat (limited to 'drivers/cdrom/cdrom.c')
-rw-r--r-- | drivers/cdrom/cdrom.c | 6 |
1 files changed, 2 insertions, 4 deletions
diff --git a/drivers/cdrom/cdrom.c b/drivers/cdrom/cdrom.c index 7ea0f48f8fa6..2df5cf4ec743 100644 --- a/drivers/cdrom/cdrom.c +++ b/drivers/cdrom/cdrom.c | |||
@@ -2133,16 +2133,14 @@ static int cdrom_read_cdda_bpc(struct cdrom_device_info *cdi, __u8 __user *ubuf, | |||
2133 | rq->timeout = 60 * HZ; | 2133 | rq->timeout = 60 * HZ; |
2134 | bio = rq->bio; | 2134 | bio = rq->bio; |
2135 | 2135 | ||
2136 | if (rq->bio) | ||
2137 | blk_queue_bounce(q, &rq->bio); | ||
2138 | |||
2139 | if (blk_execute_rq(q, cdi->disk, rq, 0)) { | 2136 | if (blk_execute_rq(q, cdi->disk, rq, 0)) { |
2140 | struct request_sense *s = rq->sense; | 2137 | struct request_sense *s = rq->sense; |
2141 | ret = -EIO; | 2138 | ret = -EIO; |
2142 | cdi->last_sense = s->sense_key; | 2139 | cdi->last_sense = s->sense_key; |
2143 | } | 2140 | } |
2144 | 2141 | ||
2145 | if (blk_rq_unmap_user(bio, len)) | 2142 | rq->bio = bio; |
2143 | if (blk_rq_unmap_user(rq)) | ||
2146 | ret = -EFAULT; | 2144 | ret = -EFAULT; |
2147 | 2145 | ||
2148 | if (ret) | 2146 | if (ret) |