IP Library Granted Patent US 10,380,069
Granted Patent B2
US 10,380,069 · App. 15/146,685 · Granted Aug 13, 2019

Generalized write operations verification method

Inventors: Viacheslav Dubeyko (San Jose, CA); Adam Manzanares (San Jose, CA)
Assignee: Western Digital Technologies, Inc.
G06F16/164G06F11/1435G06F16/11G06F16/2365
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,380,069
App. No.
15/146,685
Granted
Aug 13, 2019
Kind
B2
Abstract

A verification architecture described according to embodiments of the present invention validates changes made to metadata and may comprise one or more subsystems and phases. According to some embodiments, the “mkfs” volume creation utility works in cooperation with the device driver to create a file system volume by means of reservation and initialization space for metadata structures inside the device's partition that is reserved for the specific file system volume. The storage device uses a verified area legend when checking write requests after the file system volume has been created. The verified area legends may be stored in a dedicated partition or inside the master boot record (MBR) or Globally Unique Identifier (GUID) partition table (GPT) or special memory chip (NAND flash, for example). Write requests that overlap with any extent of reserved metadata area must be verified to prevent metadata corruption.

Claims (49)

1. A method of validating a write request to a storage device to prevent corruption of metadata, wherein the write request comprises a logical block address, a magic signature, and a data type flag, the method comprising:

determining if the logical block address of the write request overlaps an existing extent of a verified area of the storage device;

responsive to determining that the logical block address overlaps an existing extent of a verified area, determining if the write request comprises metadata based on the data type flag indicating metadata;

responsive to determining that the write request comprises metadata, determining if the magic signature matches an expected magic signature of a legend of the verified area;

responsive to determining that the magic signature matches an expected magic signature of a legend of the verified area,

determining if a number of blocks of the write request is valid;

responsive to determining that the number of blocks of the write request is valid, determining if a size of the blocks of the write request is equal to a multiple of a node size of the legend of the verified area; and

responsive to determining that the size of the blocks of the write request is equal to a multiple of a node size of the legend of the verified area, writing the metadata of the write request to the storage device.

2. The method of claim 1 , further comprising responsive to one or more of: determining that the write request does not comprise metadata based on the data type flag, determining that the magic signature does not match the expected magic signature of the legend, determining that the number of blocks of the write request is not valid, or determining that the size of the blocks of the write request is not equal to a multiple of a node size of the legend of the verified area, presenting a notification indicating that the write request is not valid.

3. The method of claim 1 , wherein the write request was generated by file system activity and comprises user data, and further comprising:

responsive to determining the logical block address of the write request does not overlap an existing extent of a verified area of the storage device, determining that the write request comprises the user data and not metadata based on the data type flag; and

responsive to determining that the write request comprises the user data, writing the user data to the storage device.

4. The method of claim 1 , wherein the magic signature comprises a value that identifies a concrete metadata structure.

5. The method of claim 4 , wherein the value of the magic signature is a pre-defined binary value.

6. The method of claim 1 , wherein the write request comprises a byte stream.

7. The method of claim 1 , wherein the legend is stored in a namespace associated with a file system volume of the storage device.

8. An apparatus for validating a write request to prevent corruption of metadata, comprising:

a storage device; and

a processor communicatively coupled to the storage device that is configured to:

analyze the write request, wherein the write request comprises a logical block address, a magic signature, and a data type flag;

determine if the logical block address of the write request overlaps an existing extent of a verified area of the storage device;

responsive to determining that the logical block address overlaps an existing extent of a verified area, determine if the write request comprises metadata based on the data type flag indicating metadata;

responsive to determining that the write request comprises metadata, determine if the magic signature matches an expected magic signature of a legend of the verified area;

responsive to determining that the magic signature matches an expected magic signature of a legend of the verified area,

determine if a number of blocks of the write request is valid;

responsive to determining that the number of blocks of the write request is valid, determining if a size of the blocks of the write request is equal to a multiple of a node size of the legend of the verified area; and

responsive to determining that the size of the blocks of the write request is equal to a multiple of a node size of the legend of the verified area, write the metadata of the write request to the storage device.

9. The apparatus of claim 8 , wherein the processor is further configured to responsive to one or more of: determining that the write request does not comprise metadata based on the data type flag, determining that the magic signature does not match the expected magic signature of the legend, determining that the number of blocks of the write request is not valid, or determining that the size of the blocks of the write request is not equal to a multiple of a node size of the legend of the verified area, present a notification indicating that the write request is not valid.

10. The apparatus of claim 8 , wherein the write request was generated by file system activity and comprises user data, and wherein the processor is further configured to:

responsive to determining the logical block address of the write request does not overlap an existing extent of a verified area of the storage device, determine that the write request comprises the user data and not metadata based on the data type flag; and

responsive to determining that the write request comprises user data, writing the user data to the storage device.

11. The apparatus of claim 8 , wherein the magic signature comprises a value that identifies a concrete metadata structure.

12. The apparatus of claim 11 , wherein the value of the magic signature is a pre-defined binary value.

13. The apparatus of claim 8 , wherein the write request comprises a byte stream.

14. The apparatus of claim 8 , wherein the legend is stored in a namespace associated with a file system volume of the storage device.

15. A computer program product tangibly embodied in a computer-readable storage medium and comprising instructions that, when executed by a processor, perform a method for validating a write request to a storage device to prevent corruption of metadata, wherein the write request comprises a logical block address, a magic signature, and a data type flag, and wherein the method comprises:

determining if the logical block address of the write request overlaps an existing extent of a verified area of the storage device;

responsive to determining that the logical block address overlaps an existing extent of a verified area, determining if the write request comprises metadata based on the data type flag indicating metadata;

responsive to determining that the write request comprises metadata, determining if the magic signature matches an expected magic signature of a legend of the verified area;

responsive to determining that the magic signature matches an expected magic signature of a legend of the verified area,

determining if a number of blocks of the write request is valid;

responsive to determining that the number of blocks of the write request is valid, determining if a size of the blocks of the write request is equal to a multiple of a node size of the legend of the verified area; and

responsive to determining that the size of the blocks of the write request is equal to a multiple of a node size of the legend of the verified area, writing the metadata of the write request to the storage device.

16. The computer program product of claim 15 , the method further comprising responsive to one or more of: determining that the write request does not comprise metadata based on the data type flag, determining that the magic signature does not match the expected magic signature of the legend, determining that the number of blocks of the write request is not valid, or determining that the size of the blocks of the write request is not equal to a multiple of a node size of the legend of the verified area, presenting a notification indicating that the write request is not valid.

17. The computer program product of claim 15 , wherein the write request was generated by file system activity and comprises user data, and wherein the method further comprises:

responsive to determining the logical block address of the write request does not overlap an existing extent of a verified area of the storage device, determining that the write request comprises the user data and not metadata based on the data type flag; and

responsive to determining that the write request comprises the user data, writing the user data from being written to the storage device, writing the user data to the storage device.

18. The computer program product of claim 15 , wherein the magic signature comprises a value that identifies a concrete metadata structure.

19. The computer program product of claim 18 , wherein the value is a pre-defined binary value, the write request comprises a byte stream, and the legend is stored in a namespace associated with a file system volume of the storage device.

Assignments (12)
SECURITY AGREEMENT (SUPPLEMENTAL) Recorded Nov 14, 2024
From: WESTERN DIGITAL TECHNOLOGIES, INC.
To: JPMORGAN CHASE BANK, N.A., AS COLLATERAL AGENT
Reel/Frame 069411/0208 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 11, 2024
From: SANDISK TECHNOLOGIES, INC.
To: WESTERN DIGITAL TECHNOLOGIES, INC.
Reel/Frame 069168/0273 →
PATENT COLLATERAL AGREEMENT Recorded Aug 23, 2024
From: SANDISK TECHNOLOGIES, INC.
To: JPMORGAN CHASE BANK, N.A., AS THE AGENT
Reel/Frame 068762/0494 →
CHANGE OF NAME Recorded Jun 27, 2024
From: SANDISK TECHNOLOGIES, INC.
To: SANDISK TECHNOLOGIES, INC.
Reel/Frame 067982/0032 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 29, 2024
From: WESTERN DIGITAL TECHNOLOGIES, INC.
To: SANDISK TECHNOLOGIES, INC.
Reel/Frame 067567/0682 →
PATENT COLLATERAL AGREEMENT - A&R LOAN AGREEMENT Recorded Aug 21, 2023
From: WESTERN DIGITAL TECHNOLOGIES, INC.
To: JPMORGAN CHASE BANK, N.A.
Reel/Frame 064715/0001 →
PATENT COLLATERAL AGREEMENT - DDTL LOAN AGREEMENT Recorded Aug 21, 2023
From: WESTERN DIGITAL TECHNOLOGIES, INC.
To: JPMORGAN CHASE BANK, N.A.
Reel/Frame 067045/0156 →
RELEASE OF SECURITY INTEREST AT REEL 052915 FRAME 0566 Recorded Feb 8, 2022
From: JPMORGAN CHASE BANK, N.A.
To: WESTERN DIGITAL TECHNOLOGIES, INC.
Reel/Frame 059127/0001 →
SECURITY INTEREST Recorded Feb 6, 2020
From: WESTERN DIGITAL TECHNOLOGIES, INC.
To: JPMORGAN CHASE BANK, N.A., AS AGENT
Reel/Frame 052915/0566 →
CORRECTIVE ASSIGNMENT TO CORRECT THE INCORRECT SERIAL NO 15/025,946 PREVIOUSLY RECORDED AT REEL: 040831 FRAME: 0265. ASSIGNOR(S) HEREBY CONFIRMS THE ASSIGNMENT. Recorded Sep 15, 2017
From: HGST NETHERLANDS B.V.
To: WESTERN DIGITAL TECHNOLOGIES, INC.
Reel/Frame 043973/0762 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 6, 2016
From: HGST NETHERLANDS B.V.
To: WESTERN DIGITAL TECHNOLOGIES, INC.
Reel/Frame 040831/0265 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 4, 2016
From: DUBEYKO, VIACHESLAV; MANZANARES, ADAM
To: HGST NETHERLANDS B.V.
Reel/Frame 038459/0138 →
Continuity (1)
Related Publication 20170322927A1 · Nov 9, 2017