IP Library › Granted Patent US 10,838,913
Granted Patent B2
US 10,838,913 · App. 15/809,452 · Granted Nov 17, 2020

Systems and methods for storing large files using file allocation table based file systems

Inventors: Anton Ivanov Altaparmakov (Great Chesterford, GB); Karl Erik Larsson (Stockholm, SE)
Assignee: Tuxera, Inc.
G06F16/13G06F3/0643G06F3/0667G06F16/9017
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 10,838,913
App. No.
15/809,452
Granted
Nov 17, 2020
Kind
B2
Abstract

This disclosure describes techniques for storing large files to file system volumes. In some examples, this disclosure describes techniques for storing files larger than a maximum file size allowed for File Allocation Table (FAT) file systems to a volume formatted according to a FAT file system. This disclosure describes techniques for handling calls associated with large files. In this manner, the techniques described here may support larger file sizes while being backwards compatible.

Claims (59)

1. A method for handling calls for a directory representation for a file in a file system, the file having a size larger than a maximum file size provided by the file system, the method comprising:

invoking a virtual file object for the file, wherein the directory representation for the file in the file system includes a hidden system directory having there within:

a large file indicator entry including a directory entry having a special character string identifying the directory as representing a file, and

two or more index entries including directory entries identifying cluster chains corresponding to respective sub-files of the file;

invoking a respective data structure for each of the directory entries included in the hidden system directory;

receiving a call associated with the virtual file object, wherein the call corresponds to data included in a sub-file of the file; and

remapping the call to the data structure corresponding to the sub-file including the data.

2. The method of claim 1 , wherein the call corresponds to reading the data included in the sub-file and where remapping the call includes invoking a read call for the data structure corresponding to the sub-file.

3. The method of claim 1 , wherein the special character string includes A$FT$LGE.F$L.

4. The method of claim 1 , wherein the hidden system directory further has there within a size entry including a directory entry having a name in which the characters thereof indicate the size of the file.

5. A method for handling calls for a directory representation for a file in a file system, the file having a size larger than a maximum file size provided by the file system, the method comprising:

invoking a virtual file object for the file, wherein the directory representation for the file in the file system includes a hidden system directory having there within:

a large file indicator entry including a directory entry having a special character string identifying the directory as representing a file, and

two or more index entries including directory entries identifying cluster chains corresponding to respective sub-files of the file;

invoking a respective data structure for each of the directory entries included in the hidden system directory;

receiving a call associated with the virtual file object, wherein the call corresponds to data included in a sub-file of the file; and

translating the call to the data structure corresponding to the sub-file including the data.

6. The method of claim 5 , wherein the call corresponds to reading the data included in the sub-file and where translating the call includes directly reading the data without invoking a higher layer call for one of the respective data structures by translating the call to an address space corresponding to the sub-file.

7. The method of claim 5 , wherein the special character string includes A$FT$LGE.F$L.

8. The method of claim 5 , wherein the hidden system directory further has there within a size entry including a directory entry having a name in which the characters thereof indicate the size of the file.

9. A method for handling calls for a directory representation for a file in a file system, the file having a size larger than a maximum file size provided by the file system, the method comprising:

invoking a virtual file object for the file, wherein the directory representation for the file in the file system includes a hidden system directory having there within:

a large file indicator entry including a directory entry having a special character string identifying the directory as representing a file, and

two or more index entries including directory entries identifying cluster chains corresponding to respective sub-files of the file;

invoking data structures for the virtual file object without invoking a respective data structure for each of the directory entries included in the hidden system directory and wherein the directory entries are treated as metadata;

receiving a call associated with the virtual file object;

handling the call; and

updating the directory entries included in the hidden system directory based on the call.

10. The method of claim 9 , wherein the special character string includes A$FT$LGE.F$L.

11. The method of claim 9 , wherein the hidden system directory further has there within a size entry including a directory entry having a name in which the characters thereof indicate the size of the file.

12. A device comprising one or more processors configured to:

invoke a virtual file object for a file in a file system, the file having a size larger than a maximum file size provided by the file system and having a directory representation including a hidden system directory having there within:

a large file indicator entry including a directory entry having a special character string identifying the directory as representing a file, and

two or more index entries including directory entries identifying cluster chains corresponding to respective sub-files of the file;

invoke a respective data structure for each of the directory entries included in the hidden system directory;

receive a call associated with the virtual file object, wherein the call corresponds to data included in a sub-file of the file; and

handle the call by performing one of: remapping the call to or translating the call to the data structure corresponding to the sub-file including the data.

13. The device of claim 12 , wherein the call corresponds to reading the data included in the sub-file and where remapping the call includes invoking a read call for the data structure corresponding to the sub-file.

14. The device of claim 12 , wherein the call corresponds to reading the data included in the sub-file and where translating the call includes directly reading the data without invoking a higher layer call by translating the call to an address space corresponding to the sub-file.

15. The device of claim 12 , wherein the special character string includes A$FT$LGE.F$L.

16. A device comprising one or more processors configured to:

invoke a virtual file object for a file in a file system, the file having a size larger than maximum file size provided by the file system and having a directory representation including a hidden system directory having there within:

a large file indicator entry including a directory entry having a special character string identifying the directory as representing a file, and

two or more index entries including directory entries identifying cluster chains corresponding to respective sub-files of the file;

invoke data structures for the virtual file object without invoking a respective data structure for each of the directory entries included in the hiddent system directory;

receive a call associated with the virtual file object;

handle the call; and

updating the directory entries included in the hidden system directory based on the call.

17. The device of claim 16 , wherein the special character string includes A$FT$LGE.F$L.

18. A non-transitory computer-readable storage medium comprising instructions stored thereon, that upon execution, cause one or more processors of a device to:

invoke a virtual file object for a file in a file system, the file having a size larger than maximum file size provided by the file system and having a directory representation including a hidden system directory having there within:

a large file indicator entry including a directory entry having a special character string identifying the directory as representing a file, and

two or more index entries including directory entries identifying cluster chains corresponding to respective sub-files of the file;

invoke a respective data structure for each of the directory entries included in the hidden system directory;

receive a call associated with the virtual file object, wherein the call corresponds to data included in a sub-file of the file; and

handle the call by performing one of: remapping the call to or translating the call to the data structure corresponding to the sub-file including the data.

19. The non-transitory computer-readable storage medium of claim 18 , wherein the call corresponds to reading the data included in the sub-file and where remapping the call includes invoking a read call for the data structure corresponding to the sub-file.

20. The non-transitory computer-readable storage medium of claim 18 , wherein the call corresponds to reading the data included in the sub-file and where translating the call includes directly reading the data without invoking a higher layer call for by translating the call to an address space corresponding to the sub-file.

21. The non-transitory computer-readable storage medium of claim 18 , wherein the special character string includes A$FT$LGE.F$L.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 6, 2017
From: ALTAPARMAKOV, ANTON IVANOV; LARSSON, KARL ERIK
To: TUXERA INC
Reel/Frame 044723/0712 →
Continuity (4)
Provisional Application 62421666 · Nov 14, 2016
Provisional Application 62430446 · Dec 6, 2016
Provisional Application 62544287 · Aug 11, 2017
Related Publication 20180137136A1 · May 17, 2018