]> bbs.cooldavid.org Git - net-next-2.6.git/blobdiff - drivers/cdrom/viocd.c
block: push down BKL into .locked_ioctl
[net-next-2.6.git] / drivers / cdrom / viocd.c
index 1fa6628d150b7f93ad1a11fbbaf496e55b45e96e..16dada0627ee62d8c84922c1c92ac5c8565803fa 100644 (file)
@@ -42,6 +42,7 @@
 #include <linux/module.h>
 #include <linux/completion.h>
 #include <linux/proc_fs.h>
+#include <linux/smp_lock.h>
 #include <linux/seq_file.h>
 #include <linux/scatterlist.h>
 
@@ -167,7 +168,13 @@ static int viocd_blk_ioctl(struct block_device *bdev, fmode_t mode,
                unsigned cmd, unsigned long arg)
 {
        struct disk_info *di = bdev->bd_disk->private_data;
-       return cdrom_ioctl(&di->viocd_info, bdev, mode, cmd, arg);
+       int ret;
+
+       lock_kernel();
+       ret = cdrom_ioctl(&di->viocd_info, bdev, mode, cmd, arg);
+       unlock_kernel();
+
+       return ret;
 }
 
 static int viocd_blk_media_changed(struct gendisk *disk)
@@ -180,7 +187,7 @@ static const struct block_device_operations viocd_fops = {
        .owner =                THIS_MODULE,
        .open =                 viocd_blk_open,
        .release =              viocd_blk_release,
-       .locked_ioctl =         viocd_blk_ioctl,
+       .ioctl =                viocd_blk_ioctl,
        .media_changed =        viocd_blk_media_changed,
 };