diff options
| author | Jeff Layton <[email protected]> | 2014-03-10 13:54:19 +0000 |
|---|---|---|
| committer | Jeff Layton <[email protected]> | 2014-03-31 12:24:43 +0000 |
| commit | 29723adee11804b548903ddb1db666cf4a60f60e (patch) | |
| tree | 15ffb52af6c920d52cb53b970c9d6a21fe6cc2b1 /fs/file_table.c | |
| parent | locks: fix locks_mandatory_locked to respect file-private locks (diff) | |
| download | kernel-29723adee11804b548903ddb1db666cf4a60f60e.tar.gz kernel-29723adee11804b548903ddb1db666cf4a60f60e.zip | |
locks: make locks_mandatory_area check for file-private locks
Allow locks_mandatory_area() to handle file-private locks correctly.
If there is a file-private lock set on an open file and we're doing I/O
via the same, then that should not cause anything to block.
Handle this by first doing a non-blocking FL_ACCESS check for a
file-private lock, and then fall back to checking for a classic POSIX
lock (and possibly blocking).
Note that this approach is subject to the same races that have always
plagued mandatory locking on Linux.
Reported-by: Trond Myklebust <[email protected]>
Signed-off-by: Jeff Layton <[email protected]>
Diffstat (limited to 'fs/file_table.c')
0 files changed, 0 insertions, 0 deletions
