IP Library Granted Patent US 41,072
Granted Patent E1
US 41,072 · App. 10/771,539 · Granted Jan 5, 2010

Pageable filter driver for prospective implementation of disk space quotas

Assignee: Symantec Operating Corporation
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 41,072
App. No.
10/771,539
Granted
Jan 5, 2010
Kind
E1
Abstract

A filter driver for implementing disk space quotas is described. Quota limits on disk space taken up by files in the file system are established for users and directories, and an internal database is established to track quotas against actual disk space utilization. A driver in accordance with the invention uses kernel resources of the operating system to prevent execution of file system I/O operations which would violate any established quota. In doing so, the driver executes a logic in kernel mode which serializes file allocation operations and also serializes access to the internal database. The first step in this logic is to intercept file system I/O requests before they reach the file system driver. Then the driver determines prospectively—before the I/O request is completed—whether any quota would be exceeded by completion of the I/O request. If a quota would be exceeded, completion of the I/O request is blocked and an error status is issued. If a quota would not be exceeded, the I/O request is allowed to complete and the driver's internal database is updated with revised disk space utilization data.

Claims (46)

1. A filter driver for use with an operating system, comprising:

means for establishing disk space quotas, said quotas being established in relation to a plurality of quota parameters;

means for determining disk space utilization in relation to each of said quota parameters;

means for storing said disk space quotas and said disk space utilization in a file structure;

means for monitoring disk I/O;

means for prospectively evaluating the effect of said disk I/O on said disk space utilization, said effect being a revised disk space utilization in relation to said disk space quotas;

means for terminating said disk I/O if said revised disk space utilization exceeds any of said disk space quotas; and

means for updating said file structure to reflect completion of said disk I/O if said revised disk space utilization does not exceed any of said disk space quotas.

2. The filter driver of claim 1 , wherein said monitoring means further comprises:

means for detecting disk I/O operations, each said disk I/O operation being associated with a named disk file;

means for serializing operations on said named disk file.

3. The filter driver of claim 2 , wherein said serializing means further comprises:

means for locking a synchronizing object, said synchronizing object being associated with said named disk file, and said locking means serving to block further disk I/O operations on said named disk file.

4. The filter driver of claim 3 , wherein said synchronizing object is a kernel event in the Windows NT operating system.

5. The filter driver of claim 1 , wherein said plurality of quota parameters comprises one or more ownership quotas and one or more directory quotas, each said ownership quota being a maximum quantity of said disk space in use by files associated with a particular owner, and each said directory quota being a maximum quantity of said disk space in use by files associated with a particular directory.

6. The filter driver of claim 1 , wherein access to said file structure is serialized.

7. The filter driver of claim 1 , wherein said monitoring means ignores paging I/O.

8. The filter driver of claim 1 , wherein said prospective evaluation means further comprises:

means for determining said revised disk space utilization; and

means for comparing said revised disk space utilization to said disk space quotas.

9. A computerized method for implementing disk space quotas comprising the steps of:

maintaining a database of disk space quotas and disk space utilization data;

intercepting an I/O request before it reaches a file system driver;

determining whether any disk space quota would be exceeded by completion of the I/O request;

blocking completion of the I/O request if any disk space quota would be exceeded by completion of the I/O request; and

allowing the I/O request to complete and updating the disk space utilization data to reflect completion if a disk space quota would not be exceeded.

10. The method of claim 9 , further comprising the step of issuing an error message if a disk space quota would be exceeded by completion of the I/O request.

11. The method of claim 9 , further comprising the step of serializing I/O requests.

12. The method of claim 11 , wherein the step of serializing I/O requests includes the step of locking a synchronizing object for the file when an I/O request for that file is detected.

13. The method of claim 12 , wherein the synchronizing object is a kernel event.

14. The method of claim 9 , wherein the disk space quotas comprise at least one ownership quota and at least one directory quota, the ownership quota being a maximum quantity of disk space in use by files associated with a particular owner, the directory quota being a maximum quantity of disk space in use by files associated with a particular directory.

15. The method of claim 9 , further comprising the step of serializing access to the database.

16. The method of claim 15 , wherein the serializing step is performed using a simple kernel mutex.

17. The method of claim 9 , wherein paging I/O requests are ignored.

18. A computerized method for implementing disk space quotas comprising the steps of:

maintaining a database of disk space quotas;

intercepting an I/O request before it reaches a file system driver;

determining whether any disk space quota would be exceeded by completion of the I/O request; and

allowing the I/O request to complete only if a disk space quota would not be exceeded.

19. The method of claim 18 , further comprising the step of issuing an error message if a disk space quota would be exceeded by completion of the I/O request.

20. The method of claim 18 , further comprising the step of serializing I/O requests.

21. The method of claim 20 , wherein the step of serializing I/O requests includes the step of locking a synchronizing object for the file when an I/O request for that file is detected.

22. The method of claim 21 , wherein the synchronizing object is a kernel event.

23. The method of claim 18 , further comprising the step of:

maintaining disk space utilization data; and

updating the disk space utilization data to reflect completion of the I/O request.

Assignments (18)
CORRECTIVE ASSIGNMENT TO CORRECT THE CONVEYING PARTY DATA AND CORRECT THE PATENT NUMBERS PREVIOUSLY RECORDED AT REEL: 69548 FRAME: 468. ASSIGNOR(S) HEREBY CONFIRMS THE ASSIGNMENT. Recorded Feb 4, 2026
From: VERITAS TECHNOLOGIES LLC
To: ARCTERA US LLC
Reel/Frame 074876/0584 →
TERMINATION AND RELEASE OF PATENT SECURITY AGREEMENT AT R/F 070530/0497 Recorded Dec 1, 2025
From: BANK OF AMERICA, N.A., AS COLLATERAL AGENT
To: ARCTERA US LLC
Reel/Frame 073833/0730 →
TERMINATION AND RELEASE OF PATENT SECURITY AGREEMENT AT R/F 069585/0150 Recorded Dec 1, 2025
From: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS COLLATERAL AGENT
To: ARCTERA US LLC
Reel/Frame 073833/0848 →
RELEASE OF SECURITY INTEREST Recorded Dec 16, 2024
From: ACQUIOM AGENCY SERVICES LLC, AS COLLATERAL AGENT
To: VERITAS TECHNOLOGIES LLC (F/K/A VERITAS US IP HOLDINGS LLC)
Reel/Frame 069712/0090 →
RELEASE OF SECURITY INTEREST Recorded Dec 13, 2024
From: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS NOTES COLLATERAL AGENT
To: VERITAS TECHNOLOGIES LLC
Reel/Frame 069634/0584 →
SECURITY INTEREST Recorded Dec 10, 2024
From: ARCTERA US LLC
To: BANK OF AMERICA, N.A., AS COLLATERAL AGENT
Reel/Frame 069563/0243 →
PATENT SECURITY AGREEMENT Recorded Dec 10, 2024
From: ARCTERA US LLC
To: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS COLLATERAL AGENT
Reel/Frame 069585/0150 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 9, 2024
From: VERITAS TECHNOLOGIES LLC
To: ARCTERA US LLC
Reel/Frame 069548/0468 →
ASSIGNMENT OF SECURITY INTEREST IN PATENT COLLATERAL Recorded Nov 25, 2024
From: BANK OF AMERICA, N.A., AS ASSIGNOR
To: ACQUIOM AGENCY SERVICES LLC, AS ASSIGNEE
Reel/Frame 069440/0084 →
TERMINATION AND RELEASE OF SECURITY IN PATENTS AT R/F 037891/0726 Recorded Nov 30, 2020
From: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS COLLATERAL AGENT
To: VERITAS US IP HOLDINGS, LLC
Reel/Frame 054535/0814 →
SECURITY INTEREST Recorded Aug 20, 2020
From: VERITAS TECHNOLOGIES LLC
To: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS NOTES COLLATERAL AGENT
Reel/Frame 054370/0134 →
MERGER AND CHANGE OF NAME Recorded Apr 18, 2016
From: VERITAS US IP HOLDINGS LLC; VERITAS TECHNOLOGIES LLC
To: VERITAS TECHNOLOGIES LLC
Reel/Frame 038455/0752 →
SECURITY INTEREST Recorded Feb 23, 2016
From: VERITAS US IP HOLDINGS LLC
To: BANK OF AMERICA, N.A., AS COLLATERAL AGENT
Reel/Frame 037891/0001 →
SECURITY INTEREST Recorded Feb 23, 2016
From: VERITAS US IP HOLDINGS LLC
To: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS COLLATERAL AGENT
Reel/Frame 037891/0726 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 4, 2016
From: SYMANTEC CORPORATION
To: VERITAS US IP HOLDINGS LLC
Reel/Frame 037697/0412 →
CHANGE OF NAME Recorded May 29, 2015
From: PRECISE SOFTWARE SOLUTIONS
To: SYM COMPANY P, INC.
Reel/Frame 035805/0408 →
MERGER AND CHANGE OF NAME Recorded May 29, 2015
From: SYM COMPANY P, INC.; SYMANTEC CORPORATION
To: SYMANTEC CORPORATION
Reel/Frame 035747/0436 →
MERGER AND CHANGE OF NAME Recorded May 29, 2015
From: W. QUINN; PRECISE SOFTWARE SOLUTIONS
To: PRECISE SOFTWARE SOLUTIONS
Reel/Frame 035747/0340 →
Continuity (3)
Reissue 0920506600 · Dec 4, 1998
Division 1018641900 · Jul 2, 2002
Provisional Application 6006767100 · Dec 5, 1997