IP Library Granted Patent US 7,702,659
Granted Patent B2
US 7,702,659 · App. 10/397,378 · Granted Apr 20, 2010

Robust, self-maintaining file system

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,702,659
App. No.
10/397,378
Granted
Apr 20, 2010
Kind
B2
Abstract

A method of managing a data storage medium. One portion of the medium is reserved for storing data files and directories. Another, separate portion of the medium is reserved for storing allocation information related to the data in the first portion. Upon beginning a change of one of the data files or directories in the first portion, that data file or directory is flagged robustly until the change is completed. As needed, for example when the medium is mounted on a host system, the incomplete changes to the flagged data files and directories are undone or completed.

Claims (45)

1. A method to recover data, the method comprising:

storing a data file comprising directory entries in a first portion of a data storage device;

storing allocation information related to the first portion in a second portion of the data storage device separate from the first portion;

in response to a detected change impacting the data file, wherein the change impacting the data file includes one of a file rename operation, a file create operation, a file extend operation, and a file delete operation:

providing an indication in the data storage device when the change impacting the data file has not completed, wherein the indication comprises setting a flag within two high order bits of a flag field of one or more of the directory entries, wherein the indication indicates an inconsistent state of the data file,

wherein, in response to the change impacting the data file being the file rename operation, one of the two high order bits of the flag field is set, and

wherein, in response to the change impacting the data file being the file create operation, the file extend operation, or the file delete operation, the other of the two high order bits of the flag field is set;

removing the indication when the change impacting the data file is complete; and

in response to detecting the indication upon mounting the data storage device to a host system, processing the indication according to an auto-repair procedure.

2. The method of claim 1 , further comprising:

providing a global indication when the indication has been provided; and

removing the global indication when the auto-repair procedure is complete.

3. The method of claim 1 , further comprising storing a root directory in a third portion of the data storage device, the third portion separate from the first portion and the second portion.

4. The method of claim 1 , wherein the auto-repair procedure comprises undoing the change of the data file.

5. The method of claim 1 , wherein the auto-repair procedure comprises completing the change of the data file.

6. A data storage system comprising:

a data storage device including:

a first portion that stores a data file comprising directory entries, and

a second portion, separate from the first portion, that stores allocation information related to the first portion;

a flagging mechanism configured, to:

in response to a detected change impacting the data file, wherein the change impacting the data file includes one of a file rename operation, a file create operation, a file extend operation, and a file delete operation:

provide an indication in the data storage device when the change impacting the data file has not completed, wherein the indication comprises setting a flag within two high order bits of a flag field of one or more of the directory entries, wherein the indication indicates an inconsistent state of the data file,

wherein, in response to the change impacting the data file being the file rename operation, one of the two high order bits of the flag field is set, and

wherein, in response to the change impacting the data file being the file create operation, the file extend operation, or the file delete operation, the other of the two high order bits of the flag field is set; and

remove the indication when the change impacting the data file is complete; and

a repair mechanism configured, in response to detecting the indication upon mounting the data storage device to a host system, to process the indication according to an auto-repair procedure.

7. The data storage system of claim 6 , wherein the flagging mechanism is further operative to provide a global indication when the indication is being provided, and wherein the repair mechanism is further operative to remove the global indication when the auto-repair procedure is complete.

8. The data storage system of claim 6 , wherein the data storage device further comprises a third portion, separate from the first portion and the second portion.

9. The data storage system of claim 6 , wherein the auto-repair procedure comprises undoing the change of the data file.

10. The data storage system of claim 6 , wherein the auto-repair procedure comprises completing the change of the data file.

11. A computer-readable storage medium storing computer-readable code to manage an apparatus to recover data, the computer-readable code comprising program code that, when executed by a processor, causes the processor to:

store a data file comprising directory entries in a first portion of a data storage device;

store allocation information related to the first portion in a second portion of the data storage device that is separate from the first portion;

in response to a detected change impacting the data file, wherein the change impacting the data file includes one of a file rename operation, a file create operation, a file extend operation, and a file delete operation:

provide an indication in the data storage device when the change impacting the data file has not completed, wherein the indication comprises setting a flag within two high order bits of a flag field of one or more of the directory entries, wherein the indication indicates an inconsistent state of the data file,

wherein, in response to the change impacting the data file being the file rename operation, one of the two high order bits of the flag field is set, and

wherein, in response to the change impacting the data file being the file create operation, the file extend operation, or the file delete operation, the other of the two high order bits of the flag field is set;

remove the indication when the change impacting the data file is complete; and

in response to detecting the indication upon mounting the data storage device to a host system, process the indication according to an auto-repair procedure.

12. The computer-readable storage medium of claim 11 , further comprising program code that, when executed by the processor, causes the processor to:

provide a global indication when the indication is being provided; and

remove the global indication when the auto-repair procedure is complete.

13. The computer-readable storage medium of claim 11 , further comprising program code that, when executed by the processor, causes the processor to store a root directory in a third portion of the data storage device that is separate from the first portion and the second portion.

14. The computer-readable storage medium of claim 11 , further comprising program code that, when executed by the processor, causes the processor to undo the change to the data file.

15. The computer-readable storage medium of claim 11 , further comprising program code that, when executed by the processor, causes the processor to complete the change to the data file.

Assignments (5)
PATENT COLLATERAL AGREEMENT (DDTL) Recorded Feb 22, 2024
From: WESTERN DIGITAL TECHNOLOGIES, INC.
To: JPMORGAN CHASE BANK, N.A., AS THE AGENT
Reel/Frame 066648/0206 →
PATENT COLLATERAL AGREEMENT (AR) Recorded Feb 22, 2024
From: WESTERN DIGITAL TECHNOLOGIES, INC.
To: JPMORGAN CHASE BANK, N.A., AS THE AGENT
Reel/Frame 066648/0284 →
THIS IS A MUTUAL RESCISSION AGREMENT OF A PREVIOUSLY RECORDED ASSIGNMENT AT REEL/FRAME: 066114/0481 Recorded Feb 6, 2024
From: WESTERN DIGITAL TECHNOLOGIES, INC.
To: WESTERN DIGITAL ISRAEL LTD.
Reel/Frame 066507/0538 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 12, 2024
From: WESTERN DIGITAL ISRAEL LTD.
To: WESTERN DIGITAL TECHNOLOGIES, INC.
Reel/Frame 066114/0481 →
CHANGE OF NAME Recorded Aug 21, 2020
From: SANDISK IL LTD
To: WESTERN DIGITAL ISRAEL LTD
Reel/Frame 053574/0513 →