File systems which provide several different and improved locking
capabilities. An application on a client workstation communicates through
a client driver to a server which interfaces with a metadata database,
which contains locking information about the files. Applications perform
as normal. The client driver provides lock and unlock requests to the
server when a write lock or a read with intent to write lock is required.
If only a read lock is considered appropriate, the client driver does not
provide a lock request. The server transparently performs read operations
and read locking using the metadata database without specific requests
from the client driver. When a read with intent to write or write lock is
required, the lock ownership is placed with a given expiration time. When
the time expires the lock is not automatically released but remains with
the particular requesting client driver until another client driver
requests it.