Contiguous file allocation in an extensible file system
First Claim
1. A computing device comprising:
- a non-transitory computer readable storage medium that stores information within a volume on the non-transitory computer readable storage medium, the volume comprising;
a plurality of directory entries, each of the plurality of directory entries containing information designating the directory entry as either a primary directory entry or a secondary directory entry, each secondary directory entry being associated with a primary directory entry, and each of the primary and secondary directory entries being typed and including a type designation that identifies the type of the directory entry, at least some of the primary and secondary directory entries being associated with a respective file stored on the volume and containing a flag that indicates whether or not data of the respective file is stored in one or more contiguous clusters on the volume; and
a file system, the file system;
storing on the storage medium information defining a file allocation table associated with the file system;
storing the data of a file in one or more contiguous clusters on the storage medium;
storing on the storage medium at least one directory entry associated with the file;
setting a flag contained in said at least one directory entry to a value that indicates that the data of the file associated with that directory entry is stored in the one or more contiguous clusters;
storing as part of said at least one directory entry information specifying a starting cluster of the one or more contiguous clusters and information indicating a size of the one or more contiguous clusters;
receiving an indication that the file is to be read from the storage medium;
accessing the at least one directory entry that is associated with the file that is to be read;
determining from the flag contained in the at least one directory entry that the data of the file associated with that directory entry is stored in one or more contiguous clusters on the volume;
in response to determining from the flag that the data of the file associated with the at least one directory entry is stored in one or more contiguous clusters, identifying each cluster of the one or more contiguous clusters based on other information within the at least one directory entry and without traversing the file allocation table, the other information within the at least one directory entry comprising the information specifying the starting cluster of the one or more contiguous clusters and the information indicating the size of the one or more contiguous clusters; and
reading the data of the file from the identified clusters.
0 Assignments
0 Petitions
Accused Products
Abstract
Disclosed is a method for creating and reading a contiguous file in an extensible file system. During the creation of a file on the storage media, the file system format check the bitmap to determine if there are areas of free space on the media that would permit the storage of the file in a contiguous manner. By storing the file in a contiguous manner the file may later be read without resorting to the file allocation table, because the file itself would not be fragmented on the storage media. Once an area of free space has been identified, the file is written to the media in a contiguous manner. Further, an associated entry for the file in the directory entry is updated or created to indicate that the file is a contiguous file and also provides basic parameters necessary to read the file without resorting to accessing the file allocation table.
-
Citations
12 Claims
-
1. A computing device comprising:
-
a non-transitory computer readable storage medium that stores information within a volume on the non-transitory computer readable storage medium, the volume comprising; a plurality of directory entries, each of the plurality of directory entries containing information designating the directory entry as either a primary directory entry or a secondary directory entry, each secondary directory entry being associated with a primary directory entry, and each of the primary and secondary directory entries being typed and including a type designation that identifies the type of the directory entry, at least some of the primary and secondary directory entries being associated with a respective file stored on the volume and containing a flag that indicates whether or not data of the respective file is stored in one or more contiguous clusters on the volume; and a file system, the file system; storing on the storage medium information defining a file allocation table associated with the file system; storing the data of a file in one or more contiguous clusters on the storage medium; storing on the storage medium at least one directory entry associated with the file; setting a flag contained in said at least one directory entry to a value that indicates that the data of the file associated with that directory entry is stored in the one or more contiguous clusters; storing as part of said at least one directory entry information specifying a starting cluster of the one or more contiguous clusters and information indicating a size of the one or more contiguous clusters; receiving an indication that the file is to be read from the storage medium; accessing the at least one directory entry that is associated with the file that is to be read; determining from the flag contained in the at least one directory entry that the data of the file associated with that directory entry is stored in one or more contiguous clusters on the volume; in response to determining from the flag that the data of the file associated with the at least one directory entry is stored in one or more contiguous clusters, identifying each cluster of the one or more contiguous clusters based on other information within the at least one directory entry and without traversing the file allocation table, the other information within the at least one directory entry comprising the information specifying the starting cluster of the one or more contiguous clusters and the information indicating the size of the one or more contiguous clusters; and reading the data of the file from the identified clusters. - View Dependent Claims (2, 3, 4, 5, 6)
-
-
7. In a computing device comprising a non-transitory computer readable storage medium that stores information within a volume on the computer readable storage medium, the volume comprising a plurality of directory entries, each of the plurality of directory entries containing information designating the directory entry as either a primary directory entry or a secondary directory entry, each secondary directory entry being associated with a primary directory entry, and each of the primary and secondary directory entries being typed and including a type designation that identifies the type of the directory entry, at least some of the primary and secondary directory entries being associated with a respective file stored on the volume and containing a flag that indicates whether or not data of the respective file is stored in one or more contiguous clusters on the volume, a method comprising:
-
storing on the storage medium information defining a file allocation table associated with the file system; storing the data of a file in one or more contiguous clusters on the storage medium; storing on the storage medium at least one directory entry associated with the file; setting a flag contained in said at least one directory entry to a value that indicates that the data of the file associated with that directory entry is stored in the one or more contiguous clusters; storing as part of said at least one directory entry information specifying a starting cluster of the one or more contiguous clusters and information indicating a size of the one or more contiguous clusters; receiving an indication that the file is to be read from the storage medium; accessing the at least one directory entry that is associated with the file that is to be read; determining from the flag contained in the at least one directory entry that the data of the file associated with that directory entry is stored in one or more contiguous clusters on the volume; in response to determining from the flag that the data of the file associated with the at least one directory entry is stored in one or more contiguous clusters, identifying each cluster of the one or more contiguous clusters based on other information within the at least one directory entry and without traversing the file allocation table, the other information within the at least one directory entry comprising the information specifying the starting cluster of the one or more contiguous clusters and the information indicating the size of the one or more contiguous clusters; and reading the data of the file from the identified clusters. - View Dependent Claims (8, 9, 10, 11, 12)
-
Specification