diff options
Diffstat (limited to 'Documentation/filesystems/mandatory-locking.txt')
-rw-r--r-- | Documentation/filesystems/mandatory-locking.txt | 21 |
1 files changed, 20 insertions, 1 deletions
diff --git a/Documentation/filesystems/mandatory-locking.txt b/Documentation/filesystems/mandatory-locking.txt index bc449d49eee5..0979d1d2ca8b 100644 --- a/Documentation/filesystems/mandatory-locking.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 | |||
8 | 0. Why you should avoid mandatory locking | ||
9 | ----------------------------------------- | ||
10 | |||
11 | The Linux implementation is prey to a number of difficult-to-fix race | ||
12 | conditions 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 | ||
8 | 1. What is mandatory locking? | 27 | 1. What is mandatory locking? |
9 | ------------------------------ | 28 | ------------------------------ |