FAT directory structure for use in transaction safe file system
First Claim
Patent Images
1. A computing device comprising:
- a data storage device storing a directory, the directory comprising a placeholder cluster having no transaction-safe data, a data cluster containing transaction-safe data, and an unused cluster;
a first file allocation table indicated to be a last known good file allocation table, the first file allocation table defining the placeholder cluster as a starting cluster in a sequence of data clusters for the directory, the placeholder cluster referencing the data cluster containing transaction-safe data;
a second file allocation table comprising a copy of the first file allocation table; and
one or more computer storage media storing computer readable instructions for;
initiating a transaction for modifying the data cluster containing transaction-safe data,copying the data cluster containing transaction-safe data to the unused cluster, modifying the placeholder cluster in the second file allocation table to reference the unused cluster, andretaining the first file allocation table as the last known good file allocation table when an interruption occurs before the transaction completes.
1 Assignment
0 Petitions
Accused Products
Abstract
Directories in a file system are defined with a dummy cluster in a file allocation table as the initial entry. Subsequent clusters in a directory'"'"'s definition may define any data for the directory that can be changed in a transaction-safe mode. A directory may be modified in a transaction-safe mode by modifying any of the subsequent clusters while tracking changes in a second file allocation table. When the changes have been made to the directory, a pointer to the second file allocation table may be switched to indicate that the second file allocation table is now last known good. The first file allocation table may then be synchronized with the second.
81 Citations
19 Claims
-
1. A computing device comprising:
-
a data storage device storing a directory, the directory comprising a placeholder cluster having no transaction-safe data, a data cluster containing transaction-safe data, and an unused cluster; a first file allocation table indicated to be a last known good file allocation table, the first file allocation table defining the placeholder cluster as a starting cluster in a sequence of data clusters for the directory, the placeholder cluster referencing the data cluster containing transaction-safe data; a second file allocation table comprising a copy of the first file allocation table; and one or more computer storage media storing computer readable instructions for; initiating a transaction for modifying the data cluster containing transaction-safe data, copying the data cluster containing transaction-safe data to the unused cluster, modifying the placeholder cluster in the second file allocation table to reference the unused cluster, and retaining the first file allocation table as the last known good file allocation table when an interruption occurs before the transaction completes. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9)
-
-
10. A method comprising:
-
storing a directory in a data storage device, the directory comprising a placeholder cluster having no transaction-safe data, a data cluster containing transaction-safe data, and an unused cluster; indicating a first file allocation table as a last known good file allocation table, the first file allocation table defining the placeholder cluster as a starting cluster in a sequence of data clusters for the directory, the placeholder cluster referencing the data cluster containing transaction-safe data; synchronizing a second file allocation table to the first file allocation table resulting in the second file allocation table comprising a copy of the first file allocation table; initiating a transaction for modifying the data cluster containing transaction-safe data; copying the data cluster containing transaction-safe data to the unused cluster; modifying the placeholder cluster in the second file allocation table to reference the unused cluster; and retaining the first file allocation table as the last known good file allocation table when an interruption occurs before the file modification transaction completes. - View Dependent Claims (11, 12, 13, 14, 15)
-
-
16. A computer-readable storage medium having computer readable instructions that, when executed on at least one processor, configure the at least one processor to perform a method, the method comprising:
-
synchronizing a first file allocation table and a second file allocation table resulting in the second file allocation table comprising a copy of the first file allocation table, the first file allocation table indicated as a last known good file allocation table, the first file allocation table defining a directory in a file system, the directory comprising a first data cluster having no transaction-safe data and a subsequent data cluster containing transaction-safe data, the first file allocation table further defining a location for the first data cluster, the location for the first data cluster storing an address for the second data cluster; initiating a transaction for modifying the second data cluster; determining that a third data cluster in the directory is currently not allocated; copying the second data cluster to the third data cluster; modifying the second file allocation table to update the address for the second data cluster to an address for the third data cluster; and retaining the first file allocation table as the last known good file allocation table when an interruption occurs before the transaction completes. - View Dependent Claims (17, 18)
-
-
19. The A computer-readable storage medium
moving the second data cluster, modifying data in the second data cluster, writing data to the second data cluster, and deleting data from second data cluster.
Specification