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.