IP Library › Granted Patent US 7,505,986
Granted Patent B2
US 7,505,986 · App. 11/181,536 · Granted Mar 17, 2009

Moving data from file on storage volume to alternate location to free space

Assignee: Microsoft Corporation
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,505,986
App. No.
11/181,536
Granted
Mar 17, 2009
Kind
B2
Abstract

A computing device has a storage volume, a file system managing the storage volume, and a file stored on the storage volume and accessed by such file system. The file system receives an open command for the file from an application, notes that the file has been ghosted in that data of the file has been moved to an alternate location, and returns an error. The returned error is intercepted and the file system is commanded to retrieve ghosting information from the ghosted file. A handle corresponding to the ghosted file is delivered to the application, and a read command for the file is received from the application, including the handle, an offset, and a read length. Reconstituting of the ghosted file is initiated based on the data thereof at the alternate location, and after reconstituting the read command is responded to with the data requested.

Claims (38)

1. A method for opening and reading a file stored in a computing device, the computing device having a storage volume managed by a file system, the method comprising:

receiving in the file system of the computing device, a file open command originated through an application;

generating an error upon recognizing that the file pertaining to the file open command is a ghosted file that does not contain file-related data;

intercepting in a ghosting filter of the computing device, such error and retrieving in response thereto, ghosting information for the ghosted file;

creating a handle from the ghosting information and delivering the handle to the application for use by the application in issuing further commands with reference to the file;

receiving thereafter, in the file system of the computing device, a file read command;

retrieving the file-related data from an alternate location wherein the file-related data has been stored;

reconstituting the file using the ghosting information and the file-related data obtained from the alternate location; and

responding to the file read command by providing the reconstituted file to the file system of the computing device.

2. The method of claim 1 further comprising the ghosting filter creating a buffer for storing information relating to the ghosted file, including the ghosting information thereof.

3. The method of claim 1 wherein retrieving the file-related data comprises:

the ghosting filter issuing to a ghosting manager on the computing device a request to obtain the file-related data from the alternate location, whereby the ghosting manager obtains the requested file-related data from the alternate location and delivers the file-related data to the ghosting filter.

4. The method of claim 3 comprising the ghosting filter issuing to the ghosting manager a plurality of requests for obtaining the file-related data from the alternate location in a plurality of data segments.

5. The method of claim 3 , wherein the request includes an ID obtained from the ghosting information, an offset into the file-related data at the alternate location, and a length of data to be obtained starting from such offset.

6. The method of claim 3 comprising the ghosting filter as a lower-level construct without access to the alternate location and the ghosting manager as a higher-level construct with access to the alternate location.

7. The method of claim 1 wherein the ghosted file contains metadata comprising an attribute to indicate that the ghosted file is in fact ghosted.

8. The method of claim 1 further comprising re-associating the handle with the file system after reconstituting the file.

9. The method of claim 1 further comprising the ghosting filter storing the file read command in a queue of file read commands.

10. The method of claim 1 farther comprising issuing a command to the file system to remove the ghosting information from the metadata of the reconstituted file.

11. The method of claim 1 wherein the file includes primary data and secondary data, the primary data being larger than the secondary data, and wherein the secondary data constitutes the file-related data stored in the alternate location.

12. A method for opening a file stored in a computing device, followed by a further file-related command, the computing device having a storage volume managed by a file system, the method comprising:

receiving in the file system of the computing device, a file open command originated through an application;

generating an error upon recognizing that the file pertaining to the file open command is a ghosted file that does not contain file-related data;

intercepting in a ghosting filter of the computing device, such error and retrieving in response thereto, ghosting information for the ghosted file;

creating a handle from the ghosting information and delivering the handle to the application for use by the application in issuing further commands with reference to the file;

receiving thereafter, in the file system of the computing device, the further file-related command;

retrieving the file-related data from an alternate location wherein the file-related data has been stored;

reconstituting the file using the ghosting information and the file-related data obtained from the alternate location; and

responding to the further file-related command by implementing the command upon the reconstituted file in the file system of the computing device.

13. The method of claim 12 farther comprising the ghosting filter creating a buffer for storing information relating to the ghosted file, including the ghosting information thereof.

14. The method of claim 12 wherein retrieving the file-related data comprises:

the ghosting filter issuing to a ghosting manager on the computing device, a request to obtain the file-related data from the alternate location, whereby the requested file-related data is obtained by the ghosting manager from the alternate location and delivered to the ghosting filter.

15. The method of claim 14 comprising the ghosting filter issuing a plurality of requests to the ghosting manager, each request for obtaining the file-related data from the alternate location in a plurality of data segments.

16. The method of claim 14 , wherein the request includes an ID obtained from the ghosting information, an offset into the file-related data at the alternate location, and a length of data to be obtained starting from such offset.

17. The method of claim 12 wherein the ghosted file includes an attribute to indicate that the ghosted file is in fact ghosted.

18. The method of claim 12 farther comprising storing the further file-related command in a queue of additional file-related commands.

19. The method of claim 12 further comprising after the ghosted file has been reconstituted issuing a command to the file system to remove the ghosting information from the metadata of the reconstituted file.

20. The method of claim 12 , wherein the further file-related command is a file close command for closing the reconstituted file in the file system of the computing device.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 9, 2014
From: MICROSOFT CORPORATION
To: MICROSOFT TECHNOLOGY LICENSING, LLC
Reel/Frame 034543/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 25, 2005
From: HAVEWALA, SAROSH CYRUS; SURIYANARAYANAN, GUHAN; ROBERT, CHRISTOPHE F.A.; BALAKRISHNAN, SHOBANA
To: MICROSOFT CORPORATION
Reel/Frame 016581/0970 →
Continuity (1)
Related Publication 20070016622A1 · Jan 18, 2007