Patent ID: 7877424

Claim:
A computer storage medium having computer-executable instructions recorded thereon, which when executed perform actions, comprising: determining, for a file system directory having a quota allotment representing an amount of storage that is permitted to be consumed by the file system directory, a first quota value representing an amount of the quota allotment used by the file system directory outside of any transaction; determining, for the file system directory, a second quota value in association with a transaction that has not yet committed wherein the second quota value comprises an amount of the quota allotment that would be used by the transaction that has not yet committed if the transaction that has not yet committed were to commit at a time of determining the second quota value; receiving a request that involves use of an additional amount of the quota allotment; responsive to determining that the request is made outside of a transaction, determining whether quota is available to satisfy the request by calculating a quota charge of the file system directory, wherein the quota charge of the file system directory is equal to the first quota value plus a quota charge for each transaction that involves a descendant of the file system directory, wherein the quota charge for a transaction indicates the maximum quota that would be used by changes made within the transaction if the transaction were to commit, abort or roll back to any save point at a time the quota charge for the transaction is determined; responsive to determining that the request is made inside of the transaction that has not yet committed, determining whether quota is available to satisfy the request by adding the second quota value to a sum of quota charges for each transaction except the transaction that has not yet committed that affects the quota charge for the file system directory; and failing the request if a sum of the quota charge of the file system directory and the additional amount of the quota allotment is greater than the quota allotment and the request is made outside of a transaction.