Out of user space I/O directly between a host system and a physical adapter using file based linear block address translation
First Claim
1. A method, comprising:
- receiving a processing queue entry from a processing queue associated with an application instance, wherein the processing queue entry references a file;
verifying that the file associated with the processing queue entry is associated with the application instance using a file protection table data structure; and
processing the processing queue entry if the file referenced by the processing queue entry is associated with the application instance, wherein;
the processing queue entry is received in an input/output (I/O) adapter directly from the application instance without intervention by a system image of a host system,the processing queue entry comprises a file name key (FN_Key) value that references an entry in a file name protection table,the file name protection table has entries for each file managed by a file system of the operating system,the processing queue entry comprises a file extension key (FE_Key) value that references an entry in a file extension protection table, the FE_Key comprising an offset within a segment of the file extension protection table,the file extension protection table has entries for each set of linear block addresses allocated to files managed by the file system of the operating system,the FN_Key value and the FE_Key value are generated when the application instance requests an allocation of a file in the file system of the operating system, and wherein processing the processing queue entry comprises;
performing a first lookup operation in the file name protection table based on the FN_Key to identify a first entry in the file name protection table referenced by the FN_Key, the first entry having a first pointer to a starting address of the segment of the file extension protection table corresponding to the first entry;
performing a second lookup operation in the segment of the file extension protection table, identified by the first pointer, based on the FE_Key, to identify a second entry in the file extension protection table referenced by the FE_Key, the second entry having a second pointer referencing a third entry in a storage block address table corresponding to the first entry and the second entry;
determining if an access operation specified in the processing queue entry is permitted on a portion of a storage device corresponding to the third entry based on one or more access control values in the second entry that identify a type of access permitted on a portion of a storage device associated with the second pointer; and
performing the access operation on the portion of the storage device corresponding to the third entry in response to the determination that the access operation is permitted.
1 Assignment
0 Petitions
Accused Products
Abstract
Enabling user space middleware or applications to pass file name based storage requests directly to a physical I/O Adapter without run-time involvement from the local Operating System (OS)is provided. A mechanism is provided for using a file protection table (FPT) data structure, which may include a file name protection table (FNPT) and file extension protection table (FEPT), to control user space and out of user space Input/Output (I/O) operations. The FNPT has an entry for each file managed by the OS′ file system and points to a segment of the FEPT. Each entry in the FEPT may include a protection domain, along with other protection table context information, against which I/O requests may be checked to determine if an application instance that submitted the I/O requests may access the file identified in the I/O requests.
-
Citations
35 Claims
-
1. A method, comprising:
-
receiving a processing queue entry from a processing queue associated with an application instance, wherein the processing queue entry references a file; verifying that the file associated with the processing queue entry is associated with the application instance using a file protection table data structure; and processing the processing queue entry if the file referenced by the processing queue entry is associated with the application instance, wherein; the processing queue entry is received in an input/output (I/O) adapter directly from the application instance without intervention by a system image of a host system, the processing queue entry comprises a file name key (FN_Key) value that references an entry in a file name protection table, the file name protection table has entries for each file managed by a file system of the operating system, the processing queue entry comprises a file extension key (FE_Key) value that references an entry in a file extension protection table, the FE_Key comprising an offset within a segment of the file extension protection table, the file extension protection table has entries for each set of linear block addresses allocated to files managed by the file system of the operating system, the FN_Key value and the FE_Key value are generated when the application instance requests an allocation of a file in the file system of the operating system, and wherein processing the processing queue entry comprises; performing a first lookup operation in the file name protection table based on the FN_Key to identify a first entry in the file name protection table referenced by the FN_Key, the first entry having a first pointer to a starting address of the segment of the file extension protection table corresponding to the first entry; performing a second lookup operation in the segment of the file extension protection table, identified by the first pointer, based on the FE_Key, to identify a second entry in the file extension protection table referenced by the FE_Key, the second entry having a second pointer referencing a third entry in a storage block address table corresponding to the first entry and the second entry; determining if an access operation specified in the processing queue entry is permitted on a portion of a storage device corresponding to the third entry based on one or more access control values in the second entry that identify a type of access permitted on a portion of a storage device associated with the second pointer; and performing the access operation on the portion of the storage device corresponding to the third entry in response to the determination that the access operation is permitted. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11)
-
-
12. A computer program product comprising a computer recordable medium having a computer readable program recorded thereon, wherein the computer readable program, when executed on a computing device, causes the computing device to:
-
receive a processing queue entry from a processing queue associated with an application instance, wherein the processing queue entry references a file; verify that the file associated with the processing queue entry is associated with the application instance using a file protection table data structure; and process the processing queue entry if the file referenced by the processing queue entry is associated with the application instance, wherein; the processing queue entry is received in an input/output (I/O) adapter directly from the application instance without intervention by a system image of a host system, the processing queue entry comprises a file name key (FN_Key) value that references an entry in a file name protection table, the file name protection table has entries for each file managed by a file system of the operating system, the processing queue entry comprises a file extension key (FE_Key) value that references an entry in a file extension protection table, the FE_Key comprising an offset within a segment of the file extension protection table, the file extension protection table has entries for each set of linear block addresses allocated to files managed by the file system of the operating system, the FN_Key value and the FE_Key value are generated when the application instance requests an allocation of a file in the file system of the operating system, and wherein processing the processing queue entry comprises; performing a first lookup operation in the file name protection table based on the FN_Key to identify a first entry in the file name protection table referenced by the FN_Key, the first entry having a first pointer to a starting address of the segment of the file extension protection table corresponding to the first entry; performing a second lookup operation in the segment of the file extension protection table, identified by the first pointer, based on the FE_Key, to identify a second entry in the file extension protection table referenced by the FE_Key, the second entry having a second pointer referencing a third entry in a storage block address table corresponding to the first entry and the second entry; determining if an access operation specified in the processing queue entry is permitted on a portion of a storage device corresponding to the third entry based on one or more access control values in the second entry that identify a type of access permitted on a portion of a storage device associated with the second pointer; and performing the access operation on the portion of the storage device corresponding to the third entry in response to the determination that the access operation is permitted. - View Dependent Claims (13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23)
-
-
24. An apparatus, comprising:
-
a processor; and a memory coupled to the processor, wherein the memory comprises instructions which, when executed by the processor, cause the processor to; receive a processing queue entry from a processing queue associated with an application instance, wherein the processing queue entry references a file; verify that the file associated with the processing queue entry is associated with the application instance using a file protection table data structure; and process the processing queue entry if the file referenced by the processing queue entry is associated with the application instance, wherein; the processing queue entry is received in an input/output (I/O) adapter directly from the application instance without intervention by a system image of a host system, the processing queue entry comprises a file name key (FN_Key) value that references an entry in a file name protection table, the file name protection table has entries for each file managed by a file system of the operating system, the processing queue entry comprises a file extension key (FE_Key) value that references an entry in a file extension protection table the FE_Key comprising an offset within a segment of the file extension protection table, the file extension protection table has entries for each set of linear block addresses allocated to files managed by the file system of the operating system, the FN_Key value and the FE_Key value are generated when the application instance requests an allocation of a file in the file system of the operating system, and wherein processing the processing queue entry comprises; performing a first lookup operation in the file name protection table based on the FN_Key to identify a first entry in the file name protection table referenced by the FN_Key, the first entry having a first pointer to a starting address of the segment of the file extension protection table corresponding to the first entry; performing a second lookup operation in the segment of the file extension protection table, identified by the first pointer, based on the FE_Key, to identify a second entry in the file extension protection table referenced by the FE_Key, the second entry having a second pointer referencing a third entry in a storage block address table corresponding to the first entry and the second entry; determining if an access operation specified in the processing queue entry is permitted on a portion of a storage device corresponding to the third entry based on one or more access control values in the second entry that identify a type of access permitted on a portion of a storage device associated with the second pointer; and performing the access operation on the portion of the storage device corresponding to the third entry in response to the determination that the access operation is permitted. - View Dependent Claims (25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35)
-
Specification