diff options
Diffstat (limited to 'drivers/block/sunvdc.c')
-rw-r--r-- | drivers/block/sunvdc.c | 14 |
1 files changed, 4 insertions, 10 deletions
diff --git a/drivers/block/sunvdc.c b/drivers/block/sunvdc.c index 5861e33efe63..cbfd9c0aef03 100644 --- a/drivers/block/sunvdc.c +++ b/drivers/block/sunvdc.c | |||
@@ -212,11 +212,6 @@ static void vdc_end_special(struct vdc_port *port, struct vio_disk_desc *desc) | |||
212 | vdc_finish(&port->vio, -err, WAITING_FOR_GEN_CMD); | 212 | vdc_finish(&port->vio, -err, WAITING_FOR_GEN_CMD); |
213 | } | 213 | } |
214 | 214 | ||
215 | static void vdc_end_request(struct request *req, int error, int num_sectors) | ||
216 | { | ||
217 | __blk_end_request(req, error, num_sectors << 9); | ||
218 | } | ||
219 | |||
220 | static void vdc_end_one(struct vdc_port *port, struct vio_dring_state *dr, | 215 | static void vdc_end_one(struct vdc_port *port, struct vio_dring_state *dr, |
221 | unsigned int index) | 216 | unsigned int index) |
222 | { | 217 | { |
@@ -239,7 +234,7 @@ static void vdc_end_one(struct vdc_port *port, struct vio_dring_state *dr, | |||
239 | 234 | ||
240 | rqe->req = NULL; | 235 | rqe->req = NULL; |
241 | 236 | ||
242 | vdc_end_request(req, (desc->status ? -EIO : 0), desc->size >> 9); | 237 | __blk_end_request(req, (desc->status ? -EIO : 0), desc->size); |
243 | 238 | ||
244 | if (blk_queue_stopped(port->disk->queue)) | 239 | if (blk_queue_stopped(port->disk->queue)) |
245 | blk_start_queue(port->disk->queue); | 240 | blk_start_queue(port->disk->queue); |
@@ -421,7 +416,7 @@ static int __send_request(struct request *req) | |||
421 | desc->slice = 0; | 416 | desc->slice = 0; |
422 | } | 417 | } |
423 | desc->status = ~0; | 418 | desc->status = ~0; |
424 | desc->offset = (req->sector << 9) / port->vdisk_block_size; | 419 | desc->offset = (blk_rq_pos(req) << 9) / port->vdisk_block_size; |
425 | desc->size = len; | 420 | desc->size = len; |
426 | desc->ncookies = err; | 421 | desc->ncookies = err; |
427 | 422 | ||
@@ -446,14 +441,13 @@ out: | |||
446 | static void do_vdc_request(struct request_queue *q) | 441 | static void do_vdc_request(struct request_queue *q) |
447 | { | 442 | { |
448 | while (1) { | 443 | while (1) { |
449 | struct request *req = elv_next_request(q); | 444 | struct request *req = blk_fetch_request(q); |
450 | 445 | ||
451 | if (!req) | 446 | if (!req) |
452 | break; | 447 | break; |
453 | 448 | ||
454 | blkdev_dequeue_request(req); | ||
455 | if (__send_request(req) < 0) | 449 | if (__send_request(req) < 0) |
456 | vdc_end_request(req, -EIO, req->hard_nr_sectors); | 450 | __blk_end_request_all(req, -EIO); |
457 | } | 451 | } |
458 | } | 452 | } |
459 | 453 | ||