diff options
author | Jeff Layton <jlayton@redhat.com> | 2014-03-10 09:54:19 -0400 |
---|---|---|
committer | Jeff Layton <jlayton@redhat.com> | 2014-03-31 08:24:43 -0400 |
commit | 29723adee11804b548903ddb1db666cf4a60f60e (patch) | |
tree | 15ffb52af6c920d52cb53b970c9d6a21fe6cc2b1 /fs/compat.c | |
parent | d7a06983a01a33605191c0766857b832ac32a2b6 (diff) | |
download | linux-29723adee11804b548903ddb1db666cf4a60f60e.tar.gz linux-29723adee11804b548903ddb1db666cf4a60f60e.tar.bz2 linux-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 <trond.myklebust@primarydata.com>
Signed-off-by: Jeff Layton <jlayton@redhat.com>
Diffstat (limited to 'fs/compat.c')
0 files changed, 0 insertions, 0 deletions