aboutsummaryrefslogtreecommitdiffstats
path: root/Documentation
diff options
context:
space:
mode:
authorLinus Torvalds <torvalds@woody.linux-foundation.org>2007-10-15 19:07:40 -0400
committerLinus Torvalds <torvalds@woody.linux-foundation.org>2007-10-15 19:07:40 -0400
commit541010e4b8921cd781ff02ae68028501457045b6 (patch)
tree58bd529d4c6e69899a0aa20afa2d7f1c23326417 /Documentation
parente457f790d8b05977853aa238bbc667b3bb375671 (diff)
parent5e7fc436426b1f9e106f511a049de91c82ec2c53 (diff)
Merge branch 'locks' of git://linux-nfs.org/~bfields/linux
* 'locks' of git://linux-nfs.org/~bfields/linux: nfsd: remove IS_ISMNDLCK macro Rework /proc/locks via seq_files and seq_list helpers fs/locks.c: use list_for_each_entry() instead of list_for_each() NFS: clean up explicit check for mandatory locks AFS: clean up explicit check for mandatory locks 9PFS: clean up explicit check for mandatory locks GFS2: clean up explicit check for mandatory locks Cleanup macros for distinguishing mandatory locks Documentation: move locks.txt in filesystems/ locks: add warning about mandatory locking races Documentation: move mandatory locking documentation to filesystems/ locks: Fix potential OOPS in generic_setlease() Use list_first_entry in locks_wake_up_blocks locks: fix flock_lock_file() comment Memory shortage can result in inconsistent flocks state locks: kill redundant local variable locks: reverse order of posix_locks_conflict() arguments
Diffstat (limited to 'Documentation')
-rw-r--r--Documentation/00-INDEX6
-rw-r--r--Documentation/filesystems/00-INDEX4
-rw-r--r--Documentation/filesystems/locks.txt (renamed from Documentation/locks.txt)10
-rw-r--r--Documentation/filesystems/mandatory-locking.txt (renamed from Documentation/mandatory.txt)21
4 files changed, 30 insertions, 11 deletions
diff --git a/Documentation/00-INDEX b/Documentation/00-INDEX
index 43e89b1537d9..cc10ce7dc339 100644
--- a/Documentation/00-INDEX
+++ b/Documentation/00-INDEX
@@ -145,7 +145,7 @@ fb/
145feature-removal-schedule.txt 145feature-removal-schedule.txt
146 - list of files and features that are going to be removed. 146 - list of files and features that are going to be removed.
147filesystems/ 147filesystems/
148 - directory with info on the various filesystems that Linux supports. 148 - info on the vfs and the various filesystems that Linux supports.
149firmware_class/ 149firmware_class/
150 - request_firmware() hotplug interface info. 150 - request_firmware() hotplug interface info.
151floppy.txt 151floppy.txt
@@ -230,8 +230,6 @@ local_ops.txt
230 - semantics and behavior of local atomic operations. 230 - semantics and behavior of local atomic operations.
231lockdep-design.txt 231lockdep-design.txt
232 - documentation on the runtime locking correctness validator. 232 - documentation on the runtime locking correctness validator.
233locks.txt
234 - info on file locking implementations, flock() vs. fcntl(), etc.
235logo.gif 233logo.gif
236 - full colour GIF image of Linux logo (penguin - Tux). 234 - full colour GIF image of Linux logo (penguin - Tux).
237logo.txt 235logo.txt
@@ -240,8 +238,6 @@ m68k/
240 - directory with info about Linux on Motorola 68k architecture. 238 - directory with info about Linux on Motorola 68k architecture.
241magic-number.txt 239magic-number.txt
242 - list of magic numbers used to mark/protect kernel data structures. 240 - list of magic numbers used to mark/protect kernel data structures.
243mandatory.txt
244 - info on the Linux implementation of Sys V mandatory file locking.
245mca.txt 241mca.txt
246 - info on supporting Micro Channel Architecture (e.g. PS/2) systems. 242 - info on supporting Micro Channel Architecture (e.g. PS/2) systems.
247md.txt 243md.txt
diff --git a/Documentation/filesystems/00-INDEX b/Documentation/filesystems/00-INDEX
index 59db1bca7027..599593a17067 100644
--- a/Documentation/filesystems/00-INDEX
+++ b/Documentation/filesystems/00-INDEX
@@ -52,6 +52,10 @@ isofs.txt
52 - info and mount options for the ISO 9660 (CDROM) filesystem. 52 - info and mount options for the ISO 9660 (CDROM) filesystem.
53jfs.txt 53jfs.txt
54 - info and mount options for the JFS filesystem. 54 - info and mount options for the JFS filesystem.
55locks.txt
56 - info on file locking implementations, flock() vs. fcntl(), etc.
57mandatory-locking.txt
58 - info on the Linux implementation of Sys V mandatory file locking.
55ncpfs.txt 59ncpfs.txt
56 - info on Novell Netware(tm) filesystem using NCP protocol. 60 - info on Novell Netware(tm) filesystem using NCP protocol.
57ntfs.txt 61ntfs.txt
diff --git a/Documentation/locks.txt b/Documentation/filesystems/locks.txt
index e3b402ef33bd..fab857accbd6 100644
--- a/Documentation/locks.txt
+++ b/Documentation/filesystems/locks.txt
@@ -53,11 +53,11 @@ fcntl(), with all the problems that implies.
531.3 Mandatory Locking As A Mount Option 531.3 Mandatory Locking As A Mount Option
54--------------------------------------- 54---------------------------------------
55 55
56Mandatory locking, as described in 'Documentation/mandatory.txt' was prior 56Mandatory locking, as described in 'Documentation/filesystems/mandatory.txt'
57to this release a general configuration option that was valid for all 57was prior to this release a general configuration option that was valid for
58mounted filesystems. This had a number of inherent dangers, not the least 58all mounted filesystems. This had a number of inherent dangers, not the
59of which was the ability to freeze an NFS server by asking it to read a 59least of which was the ability to freeze an NFS server by asking it to read
60file for which a mandatory lock existed. 60a file for which a mandatory lock existed.
61 61
62From this release of the kernel, mandatory locking can be turned on and off 62From this release of the kernel, mandatory locking can be turned on and off
63on a per-filesystem basis, using the mount options 'mand' and 'nomand'. 63on a per-filesystem basis, using the mount options 'mand' and 'nomand'.
diff --git a/Documentation/mandatory.txt b/Documentation/filesystems/mandatory-locking.txt
index bc449d49eee5..0979d1d2ca8b 100644
--- a/Documentation/mandatory.txt
+++ b/Documentation/filesystems/mandatory-locking.txt
@@ -3,7 +3,26 @@
3 Andy Walker <andy@lysaker.kvaerner.no> 3 Andy Walker <andy@lysaker.kvaerner.no>
4 4
5 15 April 1996 5 15 April 1996
6 6 (Updated September 2007)
7
80. Why you should avoid mandatory locking
9-----------------------------------------
10
11The Linux implementation is prey to a number of difficult-to-fix race
12conditions which in practice make it not dependable:
13
14 - The write system call checks for a mandatory lock only once
15 at its start. It is therefore possible for a lock request to
16 be granted after this check but before the data is modified.
17 A process may then see file data change even while a mandatory
18 lock was held.
19 - Similarly, an exclusive lock may be granted on a file after
20 the kernel has decided to proceed with a read, but before the
21 read has actually completed, and the reading process may see
22 the file data in a state which should not have been visible
23 to it.
24 - Similar races make the claimed mutual exclusion between lock
25 and mmap similarly unreliable.
7 26
81. What is mandatory locking? 271. What is mandatory locking?
9------------------------------ 28------------------------------