Patent ID: 7376679

Claim:
A method for facilitating delayed block allocation in a distributed file system, comprising: receiving an allocation of a pool of disk blocks at a client from a server; receiving a write command at the client from an application, wherein the write command includes a pointer to a buffer containing data to be written and a file identifier; reserving a set of disk blocks for a file on disk from the pool of disk blocks allocated to the client by the server; transferring the data to be written from the buffer to a kernel of the client where the data awaits transfer to a disk; acknowledging to the application that the data has been written to the file; sending the file to the server to be written to the disk, wherein sending the file involves sending a count of the disk blocks that were reserved from the pool of disk blocks at the client to the server; asynchronously writing the file from the server to the disk, wherein upon completing the write operation, the server automatically subtracts the count of the reserved disk blocks from a disk block available counter for the client in the server and uses the new value of the disk block available counter to determine an allocation of disk blocks to replace the disk blocks used when writing the file to the disk; and receiving an acknowledge message at the client from the server, wherein the acknowledge message includes a notification of the new allocation of disk blocks to be added to the pool of disk blocks.