IP Library Granted Patent US 7,386,559
Granted Patent B1
US 7,386,559 · App. 11/135,111 · Granted Jun 10, 2008

File system encapsulation

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 7,386,559
App. No.
11/135,111
Granted
Jun 10, 2008
Kind
B1
Abstract

A method, system, and apparatus to encapsulate one or more file systems in a union of file systems without modifying or copying information in each file directory entry in each file system are presented. In one embodiment, this is accomplished in part by linking an inode list file from the file system to be encapsulated with an inode list file of the union of file systems, and merging a free extent map of the to-be-encapsulated file system with the free extent map file of the union file system.

Claims (117)

1. A method comprising:

linking a first inode list to a union inode list, wherein

a first file system comprises the first inode list,

a union file system comprises the union inode list, the union inode list comprises inodes for the union file system, and

said linking permits access to files in the first file system by referencing the union inode list;

merging a first free extent map with a union free extent map, wherein

the first file system further comprises the first free extent map, and

the union file system faker comprises the union free extent map; and

storing the union inode list and the union free extent map in a storage object associated with the union file system.

2. The method of claim 1 wherein said linking comprises:

creating an inode reference in the union file system corresponding to a location of the first inode list in the first file system.

3. The method of claim 1 wherein said linking comprises:

copying the first inode list to the union file system.

4. The method of claim 3 wherein said copying comprises:

concatenating the first inode list onto the union inode list; and

maintaining a starting offset of the first inode list as concatenated onto the union inode list in the union file system.

5. The method of claim 1 further comprising;

merging a first set of structural files describing the first file system with a union set of structural files describing the union file system, wherein

the first set of structural files includes one or more of a fileset header file, an inode allocation unit file, an extent allocation unit summary file, and a quotas file.

6. The method of claim 1 further comprising:

storing a first directory entry in the union file system corresponding to data associated with the first file system, wherein

the first file system is associated with a first fileset, and

the first directory entry includes

a first fileset identifier corresponding to the first fileset, and

a first inode value corresponding to a location of the data stored in the first fileset.

7. The method of claim 6 further comprising:

renaming a second directory entry to create the first directory entry, wherein

the second directory entry is stored in the first fileset, and

the second directory entry includes the first inode value corresponding to the location of the data stored in the first fileset.

8. The method of claim 6 further comprising:

creating a third directory entry in the first fileset, wherein

the third directory entry includes a third fileset identifier; and

flagging the third directory entry, wherein

said flagging indicates that the third directory entry includes the third fileset identifier.

9. The method of claim 8 wherein said flagging comprises:

providing a pointer to a first reserved inode in the first fileset.

10. The method of claim 8 , wherein

the third directory entry corresponds to data referenced by a second fileset, wherein

the third fileset identifier corresponds to the second fileset.

11. The method of claim 1 further comprising:

allocating an extent from a set of free extents associated with the first file system, wherein

the set of free extents is designated in the union free extent map; and

using the allocated extent to store data for a file whose initial extents are stored in the union file system.

12. The method of claim 1 further comprising:

allocating an extent from a set of free extents associated with the union file system, wherein

the set of free extents is designated in the union free extent map;

using the allocated extent to store data for a file whose initial extents are stored in the first file system;

identifying the allocated extent with an extent identifier that comprises

a fileset identifier corresponding to the fileset in which the allocated extent is located; and

flagging the extent identifier, wherein

said flagging indicates that the extent identifier comprises the fileset identifier.

13. A computer-readable storage medium comprising:

a first set of instructions, executable on a computer system, configured to link a first inode list to a union inode list, wherein

a first file system comprises the first inode list,

a union file system comprises the union inode list, the union inode list comprises inodes for the union file system, and

said link permits access to files in the first file system by referencing the union inode list;

a second set of instructions, executable on the computer system, configured to merge a first free extent map with a union free extent map, wherein the first file system further comprises the first free extent map, and the union file system further comprises the union free extent map, and

a third set of instructions, executable on the computer system, configured to store the union inode list and the union free extent map in a storage object associated with the union file system.

14. The computer-readable storage medium of claim 13 further comprising:

a fourth set of instructions, executable on the computer system, configured to store a first directory entry in the union file system corresponding to data referenced by a first fileset, wherein

the first file system further comprises the first fileset, and

the first directory entry includes

a first fileset identifier corresponding to the first fileset, and

a first inode value corresponding to a location of the data stored in the first fileset.

15. The computer-readable storage medium of claim 14 further comprising:

a fifth set of instructions, executable on the computer system, configured to rename a second directory entry to create the first directory entry, wherein

the second directory entry is stored in the first fileset, and

the second directory entry includes the first inode value corresponding to the location of the data stored in the first fileset.

16. The computer-readable storage medium of claim 14 further comprising:

a fifth set of instructions, executable on the computer system, configured to create a third directory entry in the first fileset, wherein

the third directory entry includes a third fileset identifier; and

a sixth set of instructions, executable on the computer system, configured to flag the third directory entry, wherein

said flag indicates that the third directory entry comprises the third fileset identifier.

17. The computer-readable storage medium of claim 13 further comprising:

a fourth set of instructions, executable on the computer system, configured to allocate an extent from a set of free extents associated with the first file system, wherein

the set of free extents is designated in the union free extent map; and

a fifth set of instructions, executable on the computer system, configured to use the allocated extent to store data for a file whose initial extents are stored in the union file system.

18. An apparatus comprising:

a processor;

a memory coupled to the processor and comprising one or more storage objects;

a first file system comprising a first inode list and a first free extent map, wherein the first file system is stored on a first set of storage objects of the one or more storage objects;

a union file system comprising a union inode list and a union free extent map, wherein

the union file system is stored on a second set of storage objects of the one or more storage objects, and

the union inode list comprises inodes for the union file system;

means for linking the first inode list to the union inode list, wherein said linking permits access to files in the first file system by referencing the union inode list; and

means for merging the first free extent map with the union free extent map.

19. The apparatus of claim 18 further comprising:

the first file system further comprises a first fileset, wherein

the first fileset comprises data stored in the first fileset;

means for storing in the union file system a first directory entry corresponding to the data stored in the first fileset, wherein

the first directory entry includes

a first fileset identifier corresponding to the first fileset, and

a first inode value corresponding to a location of the data stored in the first fileset.

20. The apparatus of claim 19 further comprising:

a second file system comprising a second fileset;

means for creating a second directory entry in the first fileset, wherein

the second directory entry includes a second fileset identifier; and

means for flagging the second directory entry, wherein

said flagging indicates that the second directory entry includes the second fileset identifier.

21. A system comprising:

a first storage object comprising a first file system, wherein

the first file system comprises a first inode list and a first free extent map;

a second storage object comprising a union file system, wherein

the union file system comprises a union inode list and a union free extent map, and

the union inode list comprises inodes for the union file system; and

a processor coupled to the first and second storage objects and configured to

link the first inode list to the union inode list and

merge the first free extent map with the union free extent map, wherein

said link permits access to files in the first file system by referencing the union inode list.

22. The system of claim 21 , wherein:

the first file system further comprises a first fileset, wherein

the first fileset comprises data stored in the first fileset; and

the processor is further configured to

store a first directory entry in the union file system corresponding to the data stored in the first fileset, wherein

the first directory entry includes

a first fileset identifier corresponding to the first fileset, and

a first inode value corresponding to a location of the data stored in the fit fileset.

Assignments (17)
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 →
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 Oct 1, 2007
From: VERITAS OPERATING CORPORATION
To: SYMANTEC OPERATING CORPORATION
Reel/Frame 019899/0213 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 23, 2005
From: DESAI, SAMIR; SHAH, AALOP; BORATE, MILIND
To: VERITAS OPERATING CORPORATION
Reel/Frame 016591/0845 →