aboutsummaryrefslogtreecommitdiffstats
path: root/fs/compat.c
diff options
context:
space:
mode:
Diffstat (limited to 'fs/compat.c')
-rw-r--r--fs/compat.c7
1 files changed, 0 insertions, 7 deletions
diff --git a/fs/compat.c b/fs/compat.c
index 8e71cdbecc7c..0f7abf246d32 100644
--- a/fs/compat.c
+++ b/fs/compat.c
@@ -268,7 +268,6 @@ out:
268 268
269#define IOCTL_HASHSIZE 256 269#define IOCTL_HASHSIZE 256
270static struct ioctl_trans *ioctl32_hash_table[IOCTL_HASHSIZE]; 270static struct ioctl_trans *ioctl32_hash_table[IOCTL_HASHSIZE];
271static DECLARE_RWSEM(ioctl32_sem);
272 271
273extern struct ioctl_trans ioctl_start[]; 272extern struct ioctl_trans ioctl_start[];
274extern int ioctl_table_size; 273extern int ioctl_table_size;
@@ -390,14 +389,10 @@ asmlinkage long compat_sys_ioctl(unsigned int fd, unsigned int cmd,
390 break; 389 break;
391 } 390 }
392 391
393 /* When register_ioctl32_conversion is finally gone remove
394 this lock! -AK */
395 down_read(&ioctl32_sem);
396 for (t = ioctl32_hash_table[ioctl32_hash(cmd)]; t; t = t->next) { 392 for (t = ioctl32_hash_table[ioctl32_hash(cmd)]; t; t = t->next) {
397 if (t->cmd == cmd) 393 if (t->cmd == cmd)
398 goto found_handler; 394 goto found_handler;
399 } 395 }
400 up_read(&ioctl32_sem);
401 396
402 if (S_ISSOCK(filp->f_dentry->d_inode->i_mode) && 397 if (S_ISSOCK(filp->f_dentry->d_inode->i_mode) &&
403 cmd >= SIOCDEVPRIVATE && cmd <= (SIOCDEVPRIVATE + 15)) { 398 cmd >= SIOCDEVPRIVATE && cmd <= (SIOCDEVPRIVATE + 15)) {
@@ -417,11 +412,9 @@ asmlinkage long compat_sys_ioctl(unsigned int fd, unsigned int cmd,
417 lock_kernel(); 412 lock_kernel();
418 error = t->handler(fd, cmd, arg, filp); 413 error = t->handler(fd, cmd, arg, filp);
419 unlock_kernel(); 414 unlock_kernel();
420 up_read(&ioctl32_sem);
421 goto out_fput; 415 goto out_fput;
422 } 416 }
423 417
424 up_read(&ioctl32_sem);
425 do_ioctl: 418 do_ioctl:
426 error = vfs_ioctl(filp, fd, cmd, arg); 419 error = vfs_ioctl(filp, fd, cmd, arg);
427 out_fput: 420 out_fput: