via-velocity: Take spinlock on set coalesce
[safe/jmp/linux-2.6] / drivers / cdrom / viocd.c
index bbe9f08..57ca69e 100644 (file)
@@ -177,7 +177,7 @@ static int viocd_blk_media_changed(struct gendisk *disk)
        return cdrom_media_changed(&di->viocd_info);
 }
 
-struct block_device_operations viocd_fops = {
+static const struct block_device_operations viocd_fops = {
        .owner =                THIS_MODULE,
        .open =                 viocd_blk_open,
        .release =              viocd_blk_release,
@@ -297,9 +297,7 @@ static void do_viocd_request(struct request_queue *q)
 {
        struct request *req;
 
-       while ((rwreq == 0) && ((req = elv_next_request(q)) != NULL)) {
-               blkdev_dequeue_request(req);
-
+       while ((rwreq == 0) && ((req = blk_fetch_request(q)) != NULL)) {
                if (!blk_fs_request(req))
                        __blk_end_request_all(req, -EIO);
                else if (send_request(req) < 0) {
@@ -471,8 +469,8 @@ static void vio_handle_cd_event(struct HvLpEvent *event)
        case viocdopen:
                if (event->xRc == 0) {
                        di = &viocd_diskinfo[bevent->disk];
-                       blk_queue_hardsect_size(di->viocd_disk->queue,
-                                       bevent->block_size);
+                       blk_queue_logical_block_size(di->viocd_disk->queue,
+                                                    bevent->block_size);
                        set_capacity(di->viocd_disk,
                                        bevent->media_size *
                                        bevent->block_size / 512);
@@ -572,7 +570,7 @@ static int viocd_probe(struct vio_dev *vdev, const struct vio_device_id *id)
        struct device_node *node = vdev->dev.archdata.of_node;
 
        deviceno = vdev->unit_address;
-       if (deviceno > VIOCD_MAX_CD)
+       if (deviceno >= VIOCD_MAX_CD)
                return -ENODEV;
        if (!node)
                return -ENODEV;