[OpenAFS] File locking in AFS

Craig_Everhart@transarc.com Craig_Everhart@transarc.com
Wed, 19 Sep 2001 09:39:16 -0400 (EDT)

Sure, read and write locks work fine with AFS with the caveat that locks
on subranges of the file don't work.  That is, if you read-lock or
write-lock the whole range of a file, that works fine, but if you
read-lock or write-lock a byte range smaller than the entire file, the
lock request is *ignored.*

The way locking works is strictly advisory: possession of locks is
independent of whether I/O may be done on the file.

On Unix@-(tm), fcntl() and/or lockf() calls may be used to set locks. 
Locks are held until released by the calling client (or by a crash or
the like), so a held read-lock is not invalidated by a write-lock
request.  Instead, the write-lock is denied.  The strategy is that
read-locks can be shared (held concurrently by multiple applications,
potentially on many clients) while write-locks are exclusive (held by at
most one application on one client at a time).  Furthermore, read-locks
and write-locks exclude one another.