A protocol is provided for allocating file locking tasks between primary
and secondary data mover computers in a network file server. When there
is frequent read access and infrequent write access to a file, a primary
data mover grants read locks to the entire file to secondary data movers,
and the secondary data movers grant read locks to clients requesting read
access. When write access to the file is needed, the read locks to the
entire file are released and the read locks granted to the clients are
released or expire or are demoted to non-conflicting byte range locks
managed by the primary data mover. Concurrent read and write access to
the same file is then managed by the primary data mover.