summaryrefslogtreecommitdiffstats
path: root/Documentation/filesystems
diff options
context:
space:
mode:
authorIngo Molnar <mingo@elte.hu>2008-09-10 14:00:45 +0200
committerIngo Molnar <mingo@elte.hu>2008-09-10 14:00:45 +0200
commit59c37bf8924c30fbac7ebb66a1d92dcb9f05f6b1 (patch)
tree2ffc3f2ce655806424d022f3a4daec7665ab888f /Documentation/filesystems
parentec70cae8698632917f06110fdb70c6364281ecc6 (diff)
parentadee14b2e1557d0a8559f29681732d05a89dfc35 (diff)
downloadkernel-crypto-59c37bf8924c30fbac7ebb66a1d92dcb9f05f6b1.tar.gz
kernel-crypto-59c37bf8924c30fbac7ebb66a1d92dcb9f05f6b1.tar.xz
kernel-crypto-59c37bf8924c30fbac7ebb66a1d92dcb9f05f6b1.zip
Merge commit 'v2.6.27-rc6' into x86/unify-cpu-detect
Conflicts: arch/x86/kernel/cpu/amd.c arch/x86/kernel/cpu/common.c arch/x86/kernel/cpu/common_64.c arch/x86/kernel/cpu/feature_names.c include/asm-x86/cpufeature.h Signed-off-by: Ingo Molnar <mingo@elte.hu>
Diffstat (limited to 'Documentation/filesystems')
-rw-r--r--Documentation/filesystems/Locking15
1 files changed, 4 insertions, 11 deletions
diff --git a/Documentation/filesystems/Locking b/Documentation/filesystems/Locking
index 680fb566b92..8362860e21a 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