]> bbs.cooldavid.org Git - net-next-2.6.git/blobdiff - drivers/mmc/card/block.c
block: autoconvert trivial BKL users to private mutex
[net-next-2.6.git] / drivers / mmc / card / block.c
index d545f79f6000ebe8b5219c56a19c7bd0acbfc343..00073b7c036859ca199eb46caaed8476de82c23d 100644 (file)
@@ -29,7 +29,6 @@
 #include <linux/kdev_t.h>
 #include <linux/blkdev.h>
 #include <linux/mutex.h>
-#include <linux/smp_lock.h>
 #include <linux/scatterlist.h>
 #include <linux/string_helpers.h>
 
@@ -51,6 +50,7 @@ MODULE_ALIAS("mmc:block");
 #define MMC_SHIFT      3
 #define MMC_NUM_MINORS (256 >> MMC_SHIFT)
 
+static DEFINE_MUTEX(block_mutex);
 static DECLARE_BITMAP(dev_use, MMC_NUM_MINORS);
 
 /*
@@ -108,7 +108,7 @@ static int mmc_blk_open(struct block_device *bdev, fmode_t mode)
        struct mmc_blk_data *md = mmc_blk_get(bdev->bd_disk);
        int ret = -ENXIO;
 
-       lock_kernel();
+       mutex_lock(&block_mutex);
        if (md) {
                if (md->usage == 2)
                        check_disk_change(bdev);
@@ -119,7 +119,7 @@ static int mmc_blk_open(struct block_device *bdev, fmode_t mode)
                        ret = -EROFS;
                }
        }
-       unlock_kernel();
+       mutex_unlock(&block_mutex);
 
        return ret;
 }
@@ -128,9 +128,9 @@ static int mmc_blk_release(struct gendisk *disk, fmode_t mode)
 {
        struct mmc_blk_data *md = disk->private_data;
 
-       lock_kernel();
+       mutex_lock(&block_mutex);
        mmc_blk_put(md);
-       unlock_kernel();
+       mutex_unlock(&block_mutex);
        return 0;
 }