diff options
Diffstat (limited to 'fs/smbfs/ioctl.c')
| -rw-r--r-- | fs/smbfs/ioctl.c | 10 |
1 files changed, 6 insertions, 4 deletions
diff --git a/fs/smbfs/ioctl.c b/fs/smbfs/ioctl.c index dbae1f8ea26f..07215312ad39 100644 --- a/fs/smbfs/ioctl.c +++ b/fs/smbfs/ioctl.c | |||
| @@ -13,6 +13,7 @@ | |||
| 13 | #include <linux/time.h> | 13 | #include <linux/time.h> |
| 14 | #include <linux/mm.h> | 14 | #include <linux/mm.h> |
| 15 | #include <linux/highuid.h> | 15 | #include <linux/highuid.h> |
| 16 | #include <linux/smp_lock.h> | ||
| 16 | #include <linux/net.h> | 17 | #include <linux/net.h> |
| 17 | 18 | ||
| 18 | #include <linux/smb_fs.h> | 19 | #include <linux/smb_fs.h> |
| @@ -22,14 +23,14 @@ | |||
| 22 | 23 | ||
| 23 | #include "proto.h" | 24 | #include "proto.h" |
| 24 | 25 | ||
| 25 | int | 26 | long |
| 26 | smb_ioctl(struct inode *inode, struct file *filp, | 27 | smb_ioctl(struct file *filp, unsigned int cmd, unsigned long arg) |
| 27 | unsigned int cmd, unsigned long arg) | ||
| 28 | { | 28 | { |
| 29 | struct smb_sb_info *server = server_from_inode(inode); | 29 | struct smb_sb_info *server = server_from_inode(filp->f_path.dentry->d_inode); |
| 30 | struct smb_conn_opt opt; | 30 | struct smb_conn_opt opt; |
| 31 | int result = -EINVAL; | 31 | int result = -EINVAL; |
| 32 | 32 | ||
| 33 | lock_kernel(); | ||
| 33 | switch (cmd) { | 34 | switch (cmd) { |
| 34 | uid16_t uid16; | 35 | uid16_t uid16; |
| 35 | uid_t uid32; | 36 | uid_t uid32; |
| @@ -62,6 +63,7 @@ smb_ioctl(struct inode *inode, struct file *filp, | |||
| 62 | default: | 63 | default: |
| 63 | break; | 64 | break; |
| 64 | } | 65 | } |
| 66 | unlock_kernel(); | ||
| 65 | 67 | ||
| 66 | return result; | 68 | return result; |
| 67 | } | 69 | } |
