]> bbs.cooldavid.org Git - net-next-2.6.git/blobdiff - drivers/s390/char/tape_block.c
block: autoconvert trivial BKL users to private mutex
[net-next-2.6.git] / drivers / s390 / char / tape_block.c
index 85cf607fc78f62d243ae41b20f2df018710be2e0..f0fa9ca5cb2cfe09fda7c4e31179e7b1b7a1d083 100644 (file)
@@ -16,7 +16,7 @@
 #include <linux/fs.h>
 #include <linux/module.h>
 #include <linux/blkdev.h>
-#include <linux/smp_lock.h>
+#include <linux/mutex.h>
 #include <linux/interrupt.h>
 #include <linux/buffer_head.h>
 #include <linux/kernel.h>
@@ -45,6 +45,7 @@
 /*
  * file operation structure for tape block frontend
  */
+static DEFINE_MUTEX(tape_block_mutex);
 static int tapeblock_open(struct block_device *, fmode_t);
 static int tapeblock_release(struct gendisk *, fmode_t);
 static int tapeblock_medium_changed(struct gendisk *);
@@ -361,7 +362,7 @@ tapeblock_open(struct block_device *bdev, fmode_t mode)
        struct tape_device *    device;
        int                     rc;
 
-       lock_kernel();
+       mutex_lock(&tape_block_mutex);
        device = tape_get_device(disk->private_data);
 
        if (device->required_tapemarks) {
@@ -385,14 +386,14 @@ tapeblock_open(struct block_device *bdev, fmode_t mode)
         *       is called.
         */
        tape_state_set(device, TS_BLKUSE);
-       unlock_kernel();
+       mutex_unlock(&tape_block_mutex);
        return 0;
 
 release:
        tape_release(device);
  put_device:
        tape_put_device(device);
-       unlock_kernel();
+       mutex_unlock(&tape_block_mutex);
        return rc;
 }
 
@@ -407,11 +408,11 @@ tapeblock_release(struct gendisk *disk, fmode_t mode)
 {
        struct tape_device *device = disk->private_data;
  
-       lock_kernel();
+       mutex_lock(&tape_block_mutex);
        tape_state_set(device, TS_IN_USE);
        tape_release(device);
        tape_put_device(device);
-       unlock_kernel();
+       mutex_unlock(&tape_block_mutex);
 
        return 0;
 }