diff options
author | Ingo Molnar <mingo@elte.hu> | 2008-09-16 09:34:23 +0200 |
---|---|---|
committer | Ingo Molnar <mingo@elte.hu> | 2008-09-16 09:34:23 +0200 |
commit | e3bbaa3cb6ac5a245e5ecc28b09f9b7b93b2dd8a (patch) | |
tree | 04285bbf8d497caf6c2205dcf39e46873828cddc /Documentation | |
parent | 9c3254ad42e7925c3a3907a072185273705bd7b2 (diff) | |
parent | adee14b2e1557d0a8559f29681732d05a89dfc35 (diff) | |
download | blackbird-op-linux-e3bbaa3cb6ac5a245e5ecc28b09f9b7b93b2dd8a.tar.gz blackbird-op-linux-e3bbaa3cb6ac5a245e5ecc28b09f9b7b93b2dd8a.zip |
Merge commit 'v2.6.27-rc6' into x86/memory-corruption-check
Diffstat (limited to 'Documentation')
-rw-r--r-- | Documentation/filesystems/Locking | 15 |
1 files changed, 4 insertions, 11 deletions
diff --git a/Documentation/filesystems/Locking b/Documentation/filesystems/Locking index 680fb566b928..8362860e21a7 100644 --- a/Documentation/filesystems/Locking +++ b/Documentation/filesystems/Locking @@ -144,8 +144,8 @@ prototypes: void (*kill_sb) (struct super_block *); locking rules: may block BKL -get_sb yes yes -kill_sb yes yes +get_sb yes no +kill_sb yes no ->get_sb() returns error or 0 with locked superblock attached to the vfsmount (exclusive on ->s_umount). @@ -409,12 +409,12 @@ ioctl: yes (see below) unlocked_ioctl: no (see below) compat_ioctl: no mmap: no -open: maybe (see below) +open: no flush: no release: no fsync: no (see below) aio_fsync: no -fasync: yes (see below) +fasync: no lock: yes readv: no writev: no @@ -431,13 +431,6 @@ For many filesystems, it is probably safe to acquire the inode semaphore. Note some filesystems (i.e. remote ones) provide no protection for i_size so you will need to use the BKL. -->open() locking is in-transit: big lock partially moved into the methods. -The only exception is ->open() in the instances of file_operations that never -end up in ->i_fop/->proc_fops, i.e. ones that belong to character devices -(chrdev_open() takes lock before replacing ->f_op and calling the secondary -method. As soon as we fix the handling of module reference counters all -instances of ->open() will be called without the BKL. - Note: ext2_release() was *the* source of contention on fs-intensive loads and dropping BKL on ->release() helps to get rid of that (we still grab BKL for cases when we close a file that had been opened r/w, but that |