block: autoconvert trivial BKL users to private mutex
[cascardo/linux.git] / drivers / ide / ide-gd.c
index 7939953..35c4b43 100644 (file)
@@ -22,6 +22,7 @@
 #define IDE_GD_VERSION "1.18"
 
 /* module parameters */
+static DEFINE_MUTEX(ide_gd_mutex);
 static unsigned long debug_mask;
 module_param(debug_mask, ulong, 0644);
 
@@ -237,6 +238,18 @@ out_put_idkp:
        return ret;
 }
 
+static int ide_gd_unlocked_open(struct block_device *bdev, fmode_t mode)
+{
+       int ret;
+
+       mutex_lock(&ide_gd_mutex);
+       ret = ide_gd_open(bdev, mode);
+       mutex_unlock(&ide_gd_mutex);
+
+       return ret;
+}
+
+
 static int ide_gd_release(struct gendisk *disk, fmode_t mode)
 {
        struct ide_disk_obj *idkp = ide_drv_g(disk, ide_disk_obj);
@@ -244,6 +257,7 @@ static int ide_gd_release(struct gendisk *disk, fmode_t mode)
 
        ide_debug_log(IDE_DBG_FUNC, "enter");
 
+       mutex_lock(&ide_gd_mutex);
        if (idkp->openers == 1)
                drive->disk_ops->flush(drive);
 
@@ -255,6 +269,7 @@ static int ide_gd_release(struct gendisk *disk, fmode_t mode)
        idkp->openers--;
 
        ide_disk_put(idkp);
+       mutex_unlock(&ide_gd_mutex);
 
        return 0;
 }
@@ -321,9 +336,9 @@ static int ide_gd_ioctl(struct block_device *bdev, fmode_t mode,
 
 static const struct block_device_operations ide_gd_ops = {
        .owner                  = THIS_MODULE,
-       .open                   = ide_gd_open,
+       .open                   = ide_gd_unlocked_open,
        .release                = ide_gd_release,
-       .locked_ioctl           = ide_gd_ioctl,
+       .ioctl                  = ide_gd_ioctl,
        .getgeo                 = ide_gd_getgeo,
        .media_changed          = ide_gd_media_changed,
        .unlock_native_capacity = ide_gd_unlock_native_capacity,