]> bbs.cooldavid.org Git - net-next-2.6.git/blobdiff - drivers/block/swim.c
block: push down BKL into .locked_ioctl
[net-next-2.6.git] / drivers / block / swim.c
index e463657569ff06e3039822a62ca888624160eca2..f04f74e3758f8a6d636eafa33dce1acbf7fc4240 100644 (file)
@@ -20,6 +20,7 @@
 #include <linux/fd.h>
 #include <linux/slab.h>
 #include <linux/blkdev.h>
+#include <linux/smp_lock.h>
 #include <linux/hdreg.h>
 #include <linux/kernel.h>
 #include <linux/delay.h>
@@ -690,7 +691,9 @@ static int floppy_ioctl(struct block_device *bdev, fmode_t mode,
        case FDEJECT:
                if (fs->ref_count != 1)
                        return -EBUSY;
+               lock_kernel();
                err = floppy_eject(fs);
+               unlock_kernel();
                return err;
 
        case FDGETPRM:
@@ -753,7 +756,7 @@ static const struct block_device_operations floppy_fops = {
        .owner           = THIS_MODULE,
        .open            = floppy_open,
        .release         = floppy_release,
-       .locked_ioctl    = floppy_ioctl,
+       .ioctl           = floppy_ioctl,
        .getgeo          = floppy_getgeo,
        .media_changed   = floppy_check_change,
        .revalidate_disk = floppy_revalidate,