IP Library Granted Patent US 7,873,596
Granted Patent B2
US 7,873,596 · App. 11/752,872 · Granted Jan 18, 2011

Extending cluster allocations in an extensible 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,873,596
App. No.
11/752,872
Granted
Jan 18, 2011
Kind
B2
Abstract

An extensible file system format for portable storage media is provided. The extensible file system format includes the specification of primary and secondary directory entry types that may be custom defined. The primary and secondary directory entry types can be further classified as critical and benign directory entries. The directory entry types can define whether a cluster chain corresponding to a file can be contiguously allocated.

Claims (27)

1. A method comprising:

obtaining a request for an extension of a plurality of clusters, the plurality of clusters comprising a cluster chain having a cluster chain size, the extension of the plurality of clusters comprising an additional allocation of one or more clusters to the cluster chain;

determining whether the extension of the plurality of clusters and the plurality of clusters are contiguously allocatable;

when the extension of the plurality of clusters and the plurality of clusters are contiguously allocatable,

allocating the one or more clusters for the extension of the plurality of clusters without allocating a corresponding entry in a file allocation table for the one or more clusters, and

updating the cluster chain size of the cluster chain in accordance with the allocation of the one or more clusters for the extension; and

when the extension of the plurality of clusters and the plurality of clusters are not contiguously allocatable, allocating an entry in the file allocation table for each of the one or more clusters for the extension.

2. The method as recited in claim 1 , further comprising:

updating an allocation bitmap to indicate the allocation of the one or more clusters for the extension.

3. The method as recited in claim 1 , wherein determining whether the extension of the plurality of clusters and the plurality of clusters are contiguously allocatable comprises determining whether a contiguous allocation indicium associated with the plurality of clusters indicates that the plurality of clusters is currently contiguously allocated.

4. The method as recited in claim 1 , wherein the plurality of clusters has been initially contiguously allocated, and wherein determining whether the extension of the plurality of clusters and the plurality of clusters are contiguously allocatable comprises referring to an allocation bitmap that maintains individual cluster allocation states to determine whether the one or more clusters for the extension are contiguously allocatable with the plurality of clusters.

5. The method as recited in claim 1 , wherein determining whether the extension of the plurality of clusters and the plurality of clusters are contiguously allocatable includes determining whether a benign primary directory entry component includes a contiguous allocation indicium associated with the plurality of clusters that indicates whether the plurality of clusters is currently contiguously allocated.

6. The method as recited in claim 1 , wherein determining whether the extension of the plurality of clusters and the plurality of clusters are contiguously allocatable includes determining whether a benign secondary directory entry component includes a contiguous allocation indicium associated with the plurality of clusters that indicates whether the plurality of clusters is currently contiguously allocated.

7. A computing device comprising:

one or more storage media comprising computing device executable components that, when executed, configure the computing device to perform operations comprising:

obtaining a request for an extension of a plurality of clusters, the plurality of clusters comprising a cluster chain having a cluster chain size, the extension of the plurality of clusters comprising an additional allocation of one or more clusters to the cluster chain;

determining whether the extension of the plurality of clusters and the plurality of clusters are contiguously allocatable;

when the extension of the plurality of clusters and the plurality of clusters are contiguously allocatable,

allocating the one or more clusters for the extension of the plurality of clusters without allocating a corresponding entry in a file allocation table for the one or more clusters, and

updating the cluster chain size of the cluster chain in accordance with the allocation of the one or more clusters for the extension; and

when the extension of the plurality of clusters and the plurality of clusters are not contiguously allocatable, allocating an entry in the file allocation table for each of the one or more clusters for the extension.

8. The computing device as recited in claim 7 , the operations further comprising:

updating an allocation bitmap to indicate the allocation of the one or more clusters for the extension.

9. The computing device as recited in claim 7 , wherein determining whether the extension of the plurality of clusters and the plurality of clusters are contiguously allocatable comprises determining whether a contiguous allocation indicium associated with the plurality of clusters indicates that the plurality of clusters is currently contiguously allocated.

10. The computing device as recited in claim 7 , wherein the plurality of clusters has been initially contiguously allocated, and wherein determining whether the extension of the plurality of clusters and the plurality of clusters are contiguously allocatable comprises referring to an allocation bitmap that maintains individual cluster allocation states to determine whether the one or more clusters for the extension are contiguously allocatable with the plurality of clusters.

11. The computing device as recited in claim 7 , wherein determining whether the extension of the plurality of clusters and the plurality of clusters are contiguously allocatable includes determining whether a benign primary directory entry component includes a contiguous allocation indicium associated with the plurality of clusters that indicates whether the plurality of clusters is currently contiguously allocated.

12. The computing device as recited in claim 7 , wherein determining whether the extension of the plurality of clusters and the plurality of clusters are contiguously allocatable includes determining whether a benign secondary directory entry component includes a contiguous allocation indicium associated with the plurality of clusters that indicates whether the plurality of clusters is currently contiguously allocated.

Assignments (3)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 9, 2014
From: MICROSOFT CORPORATION
To: MICROSOFT TECHNOLOGY LICENSING, LLC
Reel/Frame 034542/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 20, 2012
From: GOEBEL, DAVID A.
To: MICROSOFT CORPORATION
Reel/Frame 028081/0404 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 7, 2008
From: PUDIPEDDI, RAVISANKAR V.; GHOTGE, VISHAL V.; HAVEWALA, SAROSH C.; THIND, RAVINDER S.; ZBIKOWSKI, MARK J.
To: MICROSOFT CORPORATION
Reel/Frame 021062/0073 →