afs: Provide mount-time configurable byte-range file locking emulation
authorDavid Howells <dhowells@redhat.com>
Thu, 25 Apr 2019 13:26:52 +0000 (14:26 +0100)
committerDavid Howells <dhowells@redhat.com>
Thu, 25 Apr 2019 13:26:52 +0000 (14:26 +0100)
commit6c6c1d63c243025956f061e67fff3a615aa0f6be
tree2dc16f2dfa389efcc4b53197a33a9654cf02f794
parent80548b03991f58758a336424a90bf9f988e3b077
afs: Provide mount-time configurable byte-range file locking emulation

Provide byte-range file locking emulation that can be configured at mount
time to one of four modes:

 (1) flock=local.  Locking is done locally only and no reference is made to
     the server.

 (2) flock=openafs.  Byte-range locking is done locally only; whole-file
     locking is done with reference to the server.  Whole-file locks cannot
     be upgraded unless the client holds an exclusive lock.

 (3) flock=strict.  Byte-range and whole-file locking both require a
     sufficient whole-file lock on the server.

 (4) flock=write.  As strict, but the client always gets an exclusive
     whole-file lock on the server.

Signed-off-by: David Howells <dhowells@redhat.com>
fs/afs/flock.c
fs/afs/fsclient.c
fs/afs/internal.h
fs/afs/super.c
fs/afs/yfsclient.c
include/trace/events/afs.h