1. A locking system implemented on a distributed file system where clients directly access data on storage devices via a storage area network and a file server provides metadata for said data and manages revocation and granting of locks of said lock system, said lock system comprising: a consumer lock, said consumer lock allowing a reader granted said consumer lock to read a block of data; a producer lock, said producer lock allowing a writer granted said producer lock to change said block of data, and wherein completion of said writer changing said block of data, said writer releases said producer lock, and upon release of said producer lock, said reader granted said consumer lock is notified said block of data has changed.