summaryrefslogtreecommitdiffstats
path: root/Documentation
diff options
context:
space:
mode:
authorIngo Molnar <mingo@elte.hu>2008-09-16 09:34:23 +0200
committerIngo Molnar <mingo@elte.hu>2008-09-16 09:34:23 +0200
commite3bbaa3cb6ac5a245e5ecc28b09f9b7b93b2dd8a (patch)
tree04285bbf8d497caf6c2205dcf39e46873828cddc /Documentation
parent9c3254ad42e7925c3a3907a072185273705bd7b2 (diff)
parentadee14b2e1557d0a8559f29681732d05a89dfc35 (diff)
downloadop-kernel-dev-e3bbaa3cb6ac5a245e5ecc28b09f9b7b93b2dd8a.zip
op-kernel-dev-e3bbaa3cb6ac5a245e5ecc28b09f9b7b93b2dd8a.tar.gz
Merge commit 'v2.6.27-rc6' into x86/memory-corruption-check
Diffstat (limited to 'Documentation')
-rw-r--r--Documentation/filesystems/Locking15
1 files changed, 4 insertions, 11 deletions
diff --git a/Documentation/filesystems/Locking b/Documentation/filesystems/Locking
index 680fb56..8362860 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
OpenPOWER on IntegriCloud