File system primitive allowing reprocessing of I/O requests by multiple drivers in a layered driver I/O system
First Claim
1. A method for interrupting the normal sequence of processing in an I/O system that uses a plurality of driver means for processing I/O requests, said plurality of driver means comprising a first driver means and a second driver means, said method comprising the steps of:
- receiving, by said first driver means, an I/O request to perform a designated I/O operation; and
identifying, by said first driver means, whether said I/O request requires at least partial processing by another driver means by identifying whether said I/O request involves at least one of either a file or a directory with an associated reparse point attribute;
if said at least one of either the file or the directory has an associated reparse point attribute then said first driver means performing at least the following steps;
extracting reparse point information associated with said at least one of either the file or the directory; and
passing said extracted reparse point information to said second driver means for processing.
2 Assignments
0 Petitions
Accused Products
Abstract
I/O systems of computers typically utilize multiple layered drivers to process I/O requests. I/O requests are passed from one driver to another in a defined sequence with each driver performing its processing in turn. The present invention provides a system and method for interrupting the normal sequence of processing and for allowing drivers that would not normally process an I/O request to intervene and assume control for processing the I/O request. The system and method provides a flexible and extensible way to define special types of files or directories that require special processing by a particular driver. The present invention adds a "reparse point" attribute to a file or directory. The reparse point attribute preferably contains a tag which identifies a particular driver as the owner of the reparse point and a data value which can be used by the owner driver to store any information necessary or useful in processing an I/O request. When a driver encounters a reparse point attribute, processing is interrupted and the tag and value of the reparse point are extracted from the attribute. The tag and value are then passed to the next higher level driver in the layered driver system until one driver recognizes itself as the owner of the reparse point. That driver then assumes responsibility for completing the I/O request. The owner of the reparse point may process the entire I/O requests itself, or may make further use of other drivers by passing other I/O requests to the drivers.
-
Citations
29 Claims
-
1. A method for interrupting the normal sequence of processing in an I/O system that uses a plurality of driver means for processing I/O requests, said plurality of driver means comprising a first driver means and a second driver means, said method comprising the steps of:
-
receiving, by said first driver means, an I/O request to perform a designated I/O operation; and identifying, by said first driver means, whether said I/O request requires at least partial processing by another driver means by identifying whether said I/O request involves at least one of either a file or a directory with an associated reparse point attribute; if said at least one of either the file or the directory has an associated reparse point attribute then said first driver means performing at least the following steps; extracting reparse point information associated with said at least one of either the file or the directory; and passing said extracted reparse point information to said second driver means for processing. - View Dependent Claims (2, 3, 4, 5, 6, 7)
-
-
8. A method for interrupting the normal sequence of processing in an I/O system that uses a plurality of layered drivers to access hardware devices and for passing control from one of said plurality of layered drivers to another of said plurality of layered drivers, said plurality of layered drivers comprising a first driver and other drivers in a layered relationship to said first driver, said method comprising the steps of:
-
receiving, by said first driver, an I/O request; and identifying, by said first driver, whether said I/O request involves at least one of either a file or a directory with an associated reparse point attribute; if said at least one of either the file or the directory has an associated reparse point attribute then said first driver performing at least the following steps; extracting reparse point information associated with said at least one of either the file or the directory; and passing said extracted reparse point information to said other drivers. - View Dependent Claims (9, 10, 11)
-
-
12. A method for interrupting the normal sequence of processing in an I/O system that uses a plurality of driver means for processing I/O requests, said plurality of driver means comprising a first driver means and a second driver means, said method comprising the steps of:
-
said first driver means receiving an I/O request involving a reparse point comprising information having a content and stored in a format that is understandable by said second driver means; said first driver means terminating processing of said I/O request when said first driver means recognizes said I/O request involves a reparse point; said first driver means transferring responsibility for processing said I/O request to said second driver means; said second driver means examining said information of said reparse point and examing said I/O request in order to decide how said I/O request should be processed; and said second driver means processing said I/O request.
-
-
13. A computer-readable medium having computer-executable instructions comprising:
-
first driver means for processing I/O requests in an I/O system; second driver means for processing I/O requests in said I/O system; said second driver means comprising means for interrupting processing of an I/O request received by said second driver means before said second driver means has fully completed the processing of said I/O request; and means for transferring control for processing said I/O request from said second driver means to said first driver means in order to allow said first driver means to continue processing said I/O request; and wherein said first driver means comprises means for identifying whether reparse point information received by said first driver means is owned by said first driver means. - View Dependent Claims (14, 15, 16, 17, 18, 19)
-
-
20. A computer-readable medium having computer-executable instructions comprising:
-
first driver means for processing I/O requests in an I/O system; second driver means for processing I/O requests in said I/O system; means for passing an I/O request from said first driver means to said second driver means; said second driver means comprising means for interrupting processing of said I/O request by said second driver means before said second driver means has fully completed the processing of said I/O request; and means for transferring control for processing said I/O request from said second driver means to said first driver means in order to allow said first driver means to continue processing said I/O request; and wherein said second driver means comprises means for passing status information from said second driver means to said first driver means indicating that a reparse point attribute associated with at least one of either a file or a directory was encountered by said second driver means. - View Dependent Claims (21, 22, 23, 24, 25)
-
-
26. A computer-readable medium having computer-executable instructions forming a driver means for processing I/O requests, said driver means adapted to form part of an I/O system that uses a plurality of driver means to process I/O requests, said computer-executable instructions comprising:
-
means for interrupting normal processing of an I/O request received by said driver means when a reparse point attribute associated with at least one of either a file or a directory is encountered during processing of said I/O request; and means for transferring processing of said I/O request from said driver means to other of said plurality of driver means when said reparse point attribute is encountered by said driver means. - View Dependent Claims (27, 28)
-
-
29. A computer-readable medium having a plurality of data fields stored thereon and representing a data structure, comprising:
-
a first set of data fields stored within a first region of a range of storage addresses allocated for storing said data structure, said first set of data fields being available to store user data and said first set of data fields being accessible by a user to retrieve data stored therein, said first set of data fields comprising; a first data field stored within said first region containing data stored therein by said user; and a second set of data fields stored within a second region of a range of storage addresses allocated for storing said data structure, said second set of data fields being available to store various attributes of said data structure, said attributes being adapted for access by a driver means for processing I/O requests associated with said data structure, said second set of data fields comprising; a second data field stored within said second region containing data representing the name of the data structure; and a third data field stored within said second region containing data representing a reparse point attribute adapted for use by said driver means to identify said data structure as requiring processing by other driver means.
-
Specification