A method of operating a file server for serving clients in a data network, the file server including a cached disk storage subsystem and a plurality of data mover computers linking the cached disk storage subsystem to the data network for transfer of data between the cached disk storage subsystem and the data network, and the cached disk storage subsystem having an array of disk drives and a semiconductor cache memory for storing data written to and read from the array of disk drives, said method comprising the steps of:
- (a) maintaining in the cached disk storage subsystem a file directory accessible by the data mover computers in response to file access requests to determine whether or not file access by a client is permitted, and to map file names to logical blocks of data storage that comprise the files and said logical blocks of data are stored in the cached disk storage subsystem, the file directory including locking information for read-write files which are shared among the clients, wherein the read-write files are accessible by the clients through more than one of the data mover computers;
- and
- (b) one of the data mover computers receiving from one of the clients a request for read/write file access to a shared read/write file, said one of the data mover computers accessing the file directory to determine whether or not file access by said one of the clients is permitted, and when read/write file access by said one of the clients is permitted, said one of the data mover computers accessing the locking information in the semiconductor cache memory of the cached disk storage subsystem in order to obtain a read lock or a write lock on a portion of the shared read-write file, and satisfying the request by transferring data between the cached disk storage subsystem and the data network.