Transaction-safe FAT files system
First Claim
Patent Images
1. A method implemented on a computer system by a processor configured to execute instructions, the method comprising:
- creating a new subdirectory for a parent directory by allocating a first cluster and a second cluster on a storage medium for the new subdirectory, the first cluster and the second cluster being overwritable;
creating, in the first cluster, an entry pointing to a current sector where the new subdirectory is stored and an entry pointing to the parent directory;
filling a remainder of the first cluster with data that a file system will not permit to be overwritten to prevent changeable data from being stored in the first cluster;
writing, to the second cluster, an entry for a file of the new subdirectory;
storing, in a file allocation table for the storage medium, a chain of entries corresponding to the new subdirectory, the chain of entries linking the first cluster to the second cluster; and
updating the entry for the file of the new subdirectory in response to modification of the file by;
writing data of the second cluster to a new cluster of the storage medium,rewriting the entry for the file of the new subdirectory in the new cluster without overwriting the first cluster and the second cluster, andrelinking the chain of entries corresponding to the new subdirectory to replace the second cluster with the new cluster.
1 Assignment
0 Petitions
Accused Products
Abstract
In one aspect, the present disclosure describes a process for maintaining file allocation tables (FATs) for a volume of storage medium. The process includes triggering, by a write operation, modification of data in an existing sector of a data file by writing of data to a new sector of the storage medium. The process also includes writing revised used/unused sector information into one FAT and setting a variable indicative of a number of FATs (NOF) to a first value. The process additionally includes copying the one FAT to another FAT and re-setting the variable to a second value.
-
Citations
23 Claims
-
1. A method implemented on a computer system by a processor configured to execute instructions, the method comprising:
-
creating a new subdirectory for a parent directory by allocating a first cluster and a second cluster on a storage medium for the new subdirectory, the first cluster and the second cluster being overwritable; creating, in the first cluster, an entry pointing to a current sector where the new subdirectory is stored and an entry pointing to the parent directory; filling a remainder of the first cluster with data that a file system will not permit to be overwritten to prevent changeable data from being stored in the first cluster; writing, to the second cluster, an entry for a file of the new subdirectory; storing, in a file allocation table for the storage medium, a chain of entries corresponding to the new subdirectory, the chain of entries linking the first cluster to the second cluster; and updating the entry for the file of the new subdirectory in response to modification of the file by; writing data of the second cluster to a new cluster of the storage medium, rewriting the entry for the file of the new subdirectory in the new cluster without overwriting the first cluster and the second cluster, and relinking the chain of entries corresponding to the new subdirectory to replace the second cluster with the new cluster. - View Dependent Claims (2, 3, 4, 5, 6, 7, 18)
-
-
8. A computer system comprising:
-
a processor for executing computer-executable instructions; and a memory system storing computer-executable instructions that, when executed by the processor, cause the processor to; create a new subdirectory for a parent directory by allocating a first cluster and a second cluster on a storage medium for a new subdirectory, the first cluster and the second cluster being overwritable; create, in the first cluster, an entry pointing to a current sector where the new subdirectory is stored and an entry pointing to the parent directory; fill a remainder of the first cluster with unchanging data to prevent changeable data from being stored in the first cluster; write, to the second cluster, an entry for a file of the new subdirectory; store, in a file allocation table for the storage medium, a chain of entries corresponding to the new subdirectory, the chain of entries linking the first cluster to the second cluster; and update the entry for the file of the new subdirectory in response to modification of the file by; writing data of the second cluster to a new cluster of the storage medium, rewriting the entry for the file of the new subdirectory in the new cluster without overwriting the first cluster and the second cluster, and relinking the chain of entries corresponding to the new subdirectory to replace the second cluster with the new cluster. - View Dependent Claims (9, 10, 11, 12, 13, 14, 15)
-
-
16. A process for transaction-safe data storage implemented on a computer system by a processor configured to execute instructions, the process comprising:
-
entering a pointer to a new subdirectory into a cluster of a root directory in a file system, the cluster of the root directory being overwritable; filling a remainder of the cluster of the root directory with data that never changes to prevent changeable data from being stored in the cluster of the root directory; allocating a first cluster and a second cluster on a storage medium for the new subdirectory, the first cluster and the second cluster being overwritable; creating, in the second cluster, an entry pointing to a current sector where the new subdirectory is stored and an entry pointing to the root directory; filling a remainder of the first cluster with data that never changes to prevent changeable data from being stored in the first cluster; writing, to the second cluster, an entry for a file of the new subdirectory; storing, in a file allocation table for the storage medium, a chain of entries corresponding to the new subdirectory, the chain of entries linking the first cluster to the second cluster; and updating the entry for the file of the new subdirectory in response to modification of the file by; writing data of the second cluster to a new cluster of the storage medium, rewriting the entry for the file of the new subdirectory in the new cluster without overwriting the first cluster and the second cluster, and relinking the chain of entries corresponding to the new subdirectory to replace the second cluster with the new cluster. - View Dependent Claims (17, 19, 20, 21, 22, 23)
-
Specification