cl_io Struct Reference

State for io. More...

#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.
 main object this io is against.
 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
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.

Detailed Description

State for 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.

Field Documentation

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.

The documentation for this struct was generated from the following file:
Generated on Mon Apr 12 04:18:21 2010 for Lustre by doxygen 1.4.7

Contact | About Sun | News | Employment | Privacy | Terms of Use | Trademarks | (C) 2008 Sun Microsystems, Inc.