IP Library Granted Patent US 8,180,811
Granted Patent B2
US 8,180,811 · App. 12/907,632 · Granted May 15, 2012

Identifying unreferenced file system components

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 8,180,811
App. No.
12/907,632
Granted
May 15, 2012
Kind
B2
Abstract

A list of data structures (e.g., inodes) can be accessed, and the data structures in the list can be examined. If a data structure is examined, a counter value associated with the data structure is changed to a generation number that is associated with the examination. Subsequently, the counter values can be used to identify unreferenced data structures. More specifically, the counter value for an unreferenced data structure will be different from the generation number for the most recently performed examination.

Claims (43)

1. A non-transitory computer-readable storage medium having computer-executable instructions for causing a computer system to perform a method comprising:

accessing a directory comprising a first list of data structures, each of said data structures identified by a data structure number and having a version number and a first counter value associated therewith;

examining said data structures, wherein a generation number is associated with said examining;

for each data structure in said first list that is examined, setting its respective first counter value to said generation number; and

subsequent to setting first counter values for data structures in said first list that are examined, identifying any unreferenced data structures, wherein said unreferenced data structures include data structures that have a first counter value that is different from said generation number.

2. The computer-readable storage medium of claim 1 wherein said method further comprises:

examining data objects associated with a data structure in said first list, wherein each of said data objects has a version number and a second counter value associated therewith;

for each data object of said data objects that is examined, setting its respective second counter value to said generation number if its respective version number matches a version number assigned to said data structure; and

subsequent to setting second counter values for data objects that are examined, identifying unreferenced data objects, wherein said unreferenced data objects include data objects that have a second counter value that is different from said generation number.

3. The computer-readable storage medium of claim 2 wherein said data structures comprise inodes and said data objects are examined as part of a file system consistency check, and wherein said generation number corresponds to a file system consistency check generation number.

4. The computer-readable storage medium of claim 2 wherein said method further comprises an operation selected from the group consisting of: discarding said unreferenced data objects; and marking said unreferenced data objects as free.

5. The computer-readable storage medium of claim 2 wherein said method further comprises generating an identifier for a data object associated with said data structure using the data structure number for said data structure, a partition number associated with said data object, and an offset value.

6. The computer-readable storage medium of claim 1 wherein said method further comprises identifying said unreferenced data structures by examining a second list of data structures and first counter values associated with data structures in said second list.

7. The computer-readable storage medium of claim 1 wherein said method further comprises an operation selected from the group consisting of: discarding said unreferenced data structures; and marking said unreferenced data structures as free.

8. The computer-readable storage medium of claim 1 wherein said method further comprises moving said unreferenced data structures to a lost-and-found directory.

9. The computer-readable storage medium of claim 1 wherein said method further comprises updating link counts for said data structures in said first list.

10. A computer system comprising:

a processor; and

memory coupled to said processor and having stored therein instructions that, if executed by said computer system, cause said computer system to execute operations comprising:

accessing a directory comprising a first list comprising file names and inodes, said inodes identified by respective inode numbers;

examining said inodes as part of a file system consistency check, wherein a file system consistency check generation number is associated with said examining;

for each of said inodes examined during said file system consistency check, setting a respective first counter value to said file system consistency check generation number; and

subsequent to setting the first counter values, identifying unreferenced inodes, wherein said unreferenced inodes include inodes that have a first counter value that is different from said file system consistency check generation number.

11. The computer system of claim 10 wherein said operations further comprise:

during said file system consistency check, examining data objects associated with an inode in said first list, wherein each of said data objects has an inode generation number and a second counter value associated therewith;

for each data object of said data objects that is examined during said file system consistency check, setting a respective second counter value to said during said file system consistency check generation number if a respective inode generation number for the data object matches said file system consistency check generation number; and

subsequent to setting the second counter values, identifying unreferenced data objects, wherein said unreferenced data objects include data objects that have a second counter value that is different from said file system consistency check generation number.

12. The computer system of claim 10 wherein said operations further comprise an operation selected from the group consisting of: discarding said unreferenced data objects; and marking said unreferenced data objects as free.

13. The computer system of claim 10 wherein said unreferenced nodes are identified by examining a second list of inodes and first counter values associated with inodes in said second list.

14. The computer system of claim 10 wherein said operations further comprise an operation selected from the group consisting of: discarding said unreferenced inodes; and marking said unreferenced inodes as free.

15. The computer system of claim 10 wherein said operations further comprise moving said unreferenced inodes to a lost-and-found directory.

16. A computer-implemented method comprising:

implementing a file system consistency check, wherein said implementing comprises incrementing a file system consistency check generation value;

during said file system consistency check, examining inodes in a first list, each of said inodes having a respective first counter value associated therewith;

for each inode is said first list that is examined, changing its first counter value to said file system consistency check generation value; and

subsequent to said changing, comparing first counter values for inodes in a second list to said file system consistency check generation value to identify unreferenced inodes, wherein said unreferenced inodes comprise inodes in said second list that have a first counter value different from said file system consistency check generation value.

17. The method of claim 16 further comprising:

examining data objects associated with an inode in said first list, wherein each of said data objects has an inode generation number and a second counter value associated therewith;

for each data object of said data objects that is examined, setting its respective second counter value to said file system consistency check generation value if its respective inode generation number matches a generation number for said inode; and

subsequent to setting second counter values for data objects that are examined, identifying unreferenced data objects, wherein said unreferenced data objects include data objects that have a second counter value that is different from said file system consistency check generation value.

18. The method of claim 17 further comprising discarding said unreferenced data objects.

19. The method of claim 16 further comprising identifying said unreferenced inodes by examining a second list of inodes and first counter values associated with inodes in said second list.

20. The method of claim 16 further comprising performing a corrective action selected from the group consisting of: discarding said unreferenced inodes; moving said unreferenced inodes to a lost-and-found directory; notifying a system administrator about said unreferenced inodes.

Assignments (14)
SECURITY INTEREST Recorded Dec 12, 2025
From: ARCTERA US LLC
To: CITIBANK, N.A., AS COLLATERAL AGENT
Reel/Frame 073951/0470 →
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 →
SECURITY INTEREST Recorded Mar 17, 2025
From: ARCTERA US LLC
To: BANK OF AMERICA, N.A., AS COLLATERAL AGENT
Reel/Frame 070530/0497 →
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 →
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 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 19, 2010
From: SHYAM, NAGARAJ; HARMER, CRAIG KEATLEY; MATHEW, GEORGE
To: SYMANTEC CORPORATION
Reel/Frame 025162/0032 →