- Update to 2.6.25-rc3.
[linux-flexiantxendom0-3.2.10.git] / drivers / block / sunvdc.c
index fac4c6c..a8de037 100644 (file)
@@ -212,12 +212,9 @@ static void vdc_end_special(struct vdc_port *port, struct vio_disk_desc *desc)
        vdc_finish(&port->vio, -err, WAITING_FOR_GEN_CMD);
 }
 
-static void vdc_end_request(struct request *req, int uptodate, int num_sectors)
+static void vdc_end_request(struct request *req, int error, int num_sectors)
 {
-       if (end_that_request_first(req, uptodate, num_sectors))
-               return;
-       add_disk_randomness(req->rq_disk);
-       end_that_request_last(req, uptodate);
+       __blk_end_request(req, error, num_sectors << 9);
 }
 
 static void vdc_end_one(struct vdc_port *port, struct vio_dring_state *dr,
@@ -242,7 +239,7 @@ static void vdc_end_one(struct vdc_port *port, struct vio_dring_state *dr,
 
        rqe->req = NULL;
 
-       vdc_end_request(req, !desc->status, desc->size >> 9);
+       vdc_end_request(req, (desc->status ? -EIO : 0), desc->size >> 9);
 
        if (blk_queue_stopped(port->disk->queue))
                blk_start_queue(port->disk->queue);
@@ -456,7 +453,7 @@ static void do_vdc_request(struct request_queue *q)
 
                blkdev_dequeue_request(req);
                if (__send_request(req) < 0)
-                       vdc_end_request(req, 0, req->hard_nr_sectors);
+                       vdc_end_request(req, -EIO, req->hard_nr_sectors);
        }
 }
 
@@ -735,7 +732,7 @@ static struct vio_driver_ops vdc_vio_ops = {
        .handshake_complete     = vdc_handshake_complete,
 };
 
-static void print_version(void)
+static void __devinit print_version(void)
 {
        static int version_printed;