A client is permitted to send data access commands directly to network
data storage of a network file server after obtaining a lock on at least
a portion of the file and obtaining metadata indicating storage locations
for the data in the data storage. For example, the client sends to the
file server at least one request for access to a file. In response, the
file server grants a lock to the client, and returns to the client
metadata of the file including information specifying data storage
locations in the network data storage for storing data of the file. The
client receives the metadata, and uses the metadata to produce at least
one data access command for accessing the data storage locations in the
network storage. The client sends the data access command to the network
data storage to read or write data to the file. For a write operation,
the client may modify the metadata. When the client is finished writing
to the file, the client returns any modified metadata to the file server.