diff options
Diffstat (limited to 'drivers/ide/ide-disk_ioctl.c')
-rw-r--r-- | drivers/ide/ide-disk_ioctl.c | 9 |
1 files changed, 7 insertions, 2 deletions
diff --git a/drivers/ide/ide-disk_ioctl.c b/drivers/ide/ide-disk_ioctl.c index 7b783dd7c0be..ec94c66918f6 100644 --- a/drivers/ide/ide-disk_ioctl.c +++ b/drivers/ide/ide-disk_ioctl.c | |||
@@ -1,6 +1,7 @@ | |||
1 | #include <linux/kernel.h> | 1 | #include <linux/kernel.h> |
2 | #include <linux/ide.h> | 2 | #include <linux/ide.h> |
3 | #include <linux/hdreg.h> | 3 | #include <linux/hdreg.h> |
4 | #include <linux/smp_lock.h> | ||
4 | 5 | ||
5 | #include "ide-disk.h" | 6 | #include "ide-disk.h" |
6 | 7 | ||
@@ -18,9 +19,13 @@ int ide_disk_ioctl(ide_drive_t *drive, struct block_device *bdev, fmode_t mode, | |||
18 | { | 19 | { |
19 | int err; | 20 | int err; |
20 | 21 | ||
22 | lock_kernel(); | ||
21 | err = ide_setting_ioctl(drive, bdev, cmd, arg, ide_disk_ioctl_settings); | 23 | err = ide_setting_ioctl(drive, bdev, cmd, arg, ide_disk_ioctl_settings); |
22 | if (err != -EOPNOTSUPP) | 24 | if (err != -EOPNOTSUPP) |
23 | return err; | 25 | goto out; |
24 | 26 | ||
25 | return generic_ide_ioctl(drive, bdev, cmd, arg); | 27 | err = generic_ide_ioctl(drive, bdev, cmd, arg); |
28 | out: | ||
29 | unlock_kernel(); | ||
30 | return err; | ||
26 | } | 31 | } |