vserver 1.9.5.x5
[linux-2.6.git] / drivers / block / viodasd.c
index 9534c74..fbc95a9 100644 (file)
@@ -72,7 +72,7 @@ enum {
        MAX_DISK_NAME = sizeof(((struct gendisk *)0)->disk_name)
 };
 
-static spinlock_t      viodasd_spinlock = SPIN_LOCK_UNLOCKED;
+static DEFINE_SPINLOCK(viodasd_spinlock);
 
 #define VIOMAXREQ              16
 #define VIOMAXBLOCKDMA         12
@@ -764,8 +764,8 @@ static int viodasd_remove(struct vio_dev *vdev)
        d = &viodasd_devices[vdev->unit_address];
        if (d->disk) {
                del_gendisk(d->disk);
-               put_disk(d->disk);
                blk_cleanup_queue(d->disk->queue);
+               put_disk(d->disk);
                d->disk = NULL;
        }
        d->dev = NULL;