#include <cl_object.h>
Data Fields | |
| enum cl_io_type | ci_type |
| type of this IO. | |
| enum cl_io_state | ci_state |
| current state of cl_io state machine. | |
| cl_object * | ci_obj |
| main object this io is against. | |
| cl_io * | ci_parent |
| Upper layer io, of which this io is a part of. | |
| cfs_list_t | ci_layers |
| List of slices. | |
| cl_lockset | ci_lockset |
| list of locks (to be) acquired by this io. | |
| enum cl_io_lock_dmd | ci_lockreq |
| lock requirements, this is just a help info for sublayers. | |
| int | ci_no_srvlock |
| This io has held grouplock, to inform sublayers that don't do lockless i/o. | |
| union { | |
| struct cl_rd_io { | |
| cl_io_rw_common rd | |
| } ci_rd | |
| struct cl_wr_io { | |
| cl_io_rw_common wr | |
| int wr_append | |
| } ci_wr | |
| cl_io_rw_common ci_rw | |
| struct cl_setattr_io { | |
| ost_lvb sa_attr | |
| unsigned int sa_valid | |
| obd_capa * sa_capa | |
| } ci_setattr | |
| struct cl_fault_io { | |
| pgoff_t ft_index | |
| page index within file. | |
| int ft_nob | |
| bytes valid byte on a faulted page. | |
| int ft_writable | |
| writable page? | |
| int ft_executable | |
| page of an executable? | |
| cl_page * ft_page | |
| resulting page | |
| } ci_fault | |
| } | u |
| cl_2queue | ci_queue |
| size_t | ci_nob |
| int | ci_result |
| int | ci_continue |
| unsigned | ci_owned_nr |
| Number of pages owned by this IO. | |
cl_io is shared by all threads participating in this IO (in current implementation only one thread advances IO, but parallel IO design and concurrent copy_*_user() require multiple threads acting on the same IO. It is up to these threads to serialize their activities, including updates to mutable cl_io fields.
| cfs_list_t cl_io::ci_layers |
List of slices.
Immutable after creation.
| struct cl_object* cl_io::ci_obj |
main object this io is against.
Immutable after creation.
| unsigned cl_io::ci_owned_nr |
Number of pages owned by this IO.
For invariant checking.
| struct cl_io* cl_io::ci_parent |
Upper layer io, of which this io is a part of.
Immutable after creation.
| enum cl_io_type cl_io::ci_type |
type of this IO.
Immutable after creation.