Patent ID: 7325017

Claim:
A system for implementing a data storage quota comprising: a plurality of users associated with a computer system, each user having a unique identifier; a hierarchic file system on top of a data storage device, wherein the hierarchic file system comprises a plurality of files and a plurality of directories; the plurality of files and directories stored on the storage device and arranged into a plurality of trees, wherein each file and each directory has at least one unique identifier; a level of consumption associated with a plurality of resources of the hierarchic file system; a second file system mounted inside any available directory of the hierarchic file system such that the computer system uses the second file system as a new tree of the hierarchic file system; a quantitative parameter calculated to correspond to file resource consumption associated with the new tree, wherein the system calculates the quantitative parameter by: defining a quota for a level of consumption of a plurality of resources of the hierarchic file system related to the new tree; analyzing a full access path to one of the files to determine whether the file belongs to the new tree and should be associated with the quota, based on the full access path that includes the new tree; associating a file request for data allocation to the one of the files as being related to the new tree quota; for the new tree, storing the current level of consumption and the quota for the level of consumption of a plurality of resources of the hierarchic file system associated with the unique identifiers; in response to requests for data allocation, providing responses to the requests, including an allowed level of consumption associated with quota for the level of consumption of a plurality of resources of the hierarchic file system, based on the current level and the quota for the level of consumption of a plurality of resources of the hierarchic file system; and based on the responses, determining whether the requests can be fulfilled; and reserving space for user data based on the identifier associated with the user.