projects
/
cascardo
/
linux.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
block: autoconvert trivial BKL users to private mutex
[cascardo/linux.git]
/
drivers
/
ide
/
ide-gd.c
diff --git
a/drivers/ide/ide-gd.c
b/drivers/ide/ide-gd.c
index
7939953
..
35c4b43
100644
(file)
--- a/
drivers/ide/ide-gd.c
+++ b/
drivers/ide/ide-gd.c
@@
-22,6
+22,7
@@
#define IDE_GD_VERSION "1.18"
/* module parameters */
#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);
static unsigned long debug_mask;
module_param(debug_mask, ulong, 0644);
@@
-237,6
+238,18
@@
out_put_idkp:
return ret;
}
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);
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");
ide_debug_log(IDE_DBG_FUNC, "enter");
+ mutex_lock(&ide_gd_mutex);
if (idkp->openers == 1)
drive->disk_ops->flush(drive);
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);
idkp->openers--;
ide_disk_put(idkp);
+ mutex_unlock(&ide_gd_mutex);
return 0;
}
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,
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,
.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,
.getgeo = ide_gd_getgeo,
.media_changed = ide_gd_media_changed,
.unlock_native_capacity = ide_gd_unlock_native_capacity,