diff options
| author | Linus Torvalds <torvalds@linux-foundation.org> | 2010-08-13 20:52:35 -0400 |
|---|---|---|
| committer | Linus Torvalds <torvalds@linux-foundation.org> | 2010-08-13 20:52:35 -0400 |
| commit | 10041d2d14688e207d0d829095147aa82c1f211b (patch) | |
| tree | 57ef361d05e6bbffe3ec490ca9110878a6e969e2 /Documentation/filesystems | |
| parent | 4914c7f881845367b9198631a014ab466329b9e5 (diff) | |
| parent | b19dd42faf413b4705d4adb38521e82d73fa4249 (diff) | |
Merge branch 'bkl/ioctl' of git://git.kernel.org/pub/scm/linux/kernel/git/frederic/random-tracing
* 'bkl/ioctl' of git://git.kernel.org/pub/scm/linux/kernel/git/frederic/random-tracing:
bkl: Remove locked .ioctl file operation
v4l: Remove reference to bkl ioctl in compat ioctl handling
logfs: kill BKL
Diffstat (limited to 'Documentation/filesystems')
| -rw-r--r-- | Documentation/filesystems/Locking | 8 | ||||
| -rw-r--r-- | Documentation/filesystems/vfs.txt | 6 |
2 files changed, 2 insertions, 12 deletions
diff --git a/Documentation/filesystems/Locking b/Documentation/filesystems/Locking index bbcc15651a2..2db4283efa8 100644 --- a/Documentation/filesystems/Locking +++ b/Documentation/filesystems/Locking | |||
| @@ -374,8 +374,6 @@ prototypes: | |||
| 374 | ssize_t (*aio_write) (struct kiocb *, const struct iovec *, unsigned long, loff_t); | 374 | ssize_t (*aio_write) (struct kiocb *, const struct iovec *, unsigned long, loff_t); |
| 375 | int (*readdir) (struct file *, void *, filldir_t); | 375 | int (*readdir) (struct file *, void *, filldir_t); |
| 376 | unsigned int (*poll) (struct file *, struct poll_table_struct *); | 376 | unsigned int (*poll) (struct file *, struct poll_table_struct *); |
| 377 | int (*ioctl) (struct inode *, struct file *, unsigned int, | ||
| 378 | unsigned long); | ||
| 379 | long (*unlocked_ioctl) (struct file *, unsigned int, unsigned long); | 377 | long (*unlocked_ioctl) (struct file *, unsigned int, unsigned long); |
| 380 | long (*compat_ioctl) (struct file *, unsigned int, unsigned long); | 378 | long (*compat_ioctl) (struct file *, unsigned int, unsigned long); |
| 381 | int (*mmap) (struct file *, struct vm_area_struct *); | 379 | int (*mmap) (struct file *, struct vm_area_struct *); |
| @@ -409,8 +407,7 @@ write: no | |||
| 409 | aio_write: no | 407 | aio_write: no |
| 410 | readdir: no | 408 | readdir: no |
| 411 | poll: no | 409 | poll: no |
| 412 | ioctl: yes (see below) | 410 | unlocked_ioctl: no |
| 413 | unlocked_ioctl: no (see below) | ||
| 414 | compat_ioctl: no | 411 | compat_ioctl: no |
| 415 | mmap: no | 412 | mmap: no |
| 416 | open: no | 413 | open: no |
| @@ -453,9 +450,6 @@ move ->readdir() to inode_operations and use a separate method for directory | |||
| 453 | anything that resembles union-mount we won't have a struct file for all | 450 | anything that resembles union-mount we won't have a struct file for all |
| 454 | components. And there are other reasons why the current interface is a mess... | 451 | components. And there are other reasons why the current interface is a mess... |
| 455 | 452 | ||
| 456 | ->ioctl() on regular files is superceded by the ->unlocked_ioctl() that | ||
| 457 | doesn't take the BKL. | ||
| 458 | |||
| 459 | ->read on directories probably must go away - we should just enforce -EISDIR | 453 | ->read on directories probably must go away - we should just enforce -EISDIR |
| 460 | in sys_read() and friends. | 454 | in sys_read() and friends. |
| 461 | 455 | ||
diff --git a/Documentation/filesystems/vfs.txt b/Documentation/filesystems/vfs.txt index 94677e7dcb1..ed7e5efc06d 100644 --- a/Documentation/filesystems/vfs.txt +++ b/Documentation/filesystems/vfs.txt | |||
| @@ -727,7 +727,6 @@ struct file_operations { | |||
| 727 | ssize_t (*aio_write) (struct kiocb *, const struct iovec *, unsigned long, loff_t); | 727 | ssize_t (*aio_write) (struct kiocb *, const struct iovec *, unsigned long, loff_t); |
| 728 | int (*readdir) (struct file *, void *, filldir_t); | 728 | int (*readdir) (struct file *, void *, filldir_t); |
| 729 | unsigned int (*poll) (struct file *, struct poll_table_struct *); | 729 | unsigned int (*poll) (struct file *, struct poll_table_struct *); |
| 730 | int (*ioctl) (struct inode *, struct file *, unsigned int, unsigned long); | ||
| 731 | long (*unlocked_ioctl) (struct file *, unsigned int, unsigned long); | 730 | long (*unlocked_ioctl) (struct file *, unsigned int, unsigned long); |
| 732 | long (*compat_ioctl) (struct file *, unsigned int, unsigned long); | 731 | long (*compat_ioctl) (struct file *, unsigned int, unsigned long); |
| 733 | int (*mmap) (struct file *, struct vm_area_struct *); | 732 | int (*mmap) (struct file *, struct vm_area_struct *); |
| @@ -768,10 +767,7 @@ otherwise noted. | |||
| 768 | activity on this file and (optionally) go to sleep until there | 767 | activity on this file and (optionally) go to sleep until there |
| 769 | is activity. Called by the select(2) and poll(2) system calls | 768 | is activity. Called by the select(2) and poll(2) system calls |
| 770 | 769 | ||
| 771 | ioctl: called by the ioctl(2) system call | 770 | unlocked_ioctl: called by the ioctl(2) system call. |
| 772 | |||
| 773 | unlocked_ioctl: called by the ioctl(2) system call. Filesystems that do not | ||
| 774 | require the BKL should use this method instead of the ioctl() above. | ||
| 775 | 771 | ||
| 776 | compat_ioctl: called by the ioctl(2) system call when 32 bit system calls | 772 | compat_ioctl: called by the ioctl(2) system call when 32 bit system calls |
| 777 | are used on 64 bit kernels. | 773 | are used on 64 bit kernels. |
