 ,    ,   ,   
  .        
 -,   ,     -
   -     buffer_head,
           
.  ,       2.5  
        -.  -
   bio,      .

 bio

    -    
bio,     <linux/bio . h>.    -
   -     (segment). 
  ,      , .. -
         .
 ,        , 
 bio      -,  
       .   
bio  ,    .

struct bio (

sector_t       bi_sector;       /*     */
struct bio      *bi next;        /*   */
struct block device *bi bdev;    /*    */
unsigned long  bi_flags;        /*     */
unsigned long  bi_rw;           /*   ? */
unsigned short  bi vent;         /*   bio vec

  bi io vec */
unsigned short  bi_idx;          /*     bi io_vec */
unsigned short  bi_phys segments;/*   */
unsigned short  bi hw segments;  /*   

  */
unsigned int    bi_size;         /*    - */
unsigned int    bi_hw front_size;/*    */
unsigned int    bi_hw_front_size;/*   

 */
unsigned int    bi_max vecs;     /*   

 bio vecs */
struct bio_vec  *bi_io_vec;      /*   bio_vec */
bio end io t    *bi end io;      /*   - */
atomic_t       bi_cnt;          /*   */
void           *bi private;     /*     */
bio destructor t *bi destructor;  /*  */

*bi destructor;

   bio     (-
)   -.        -
  .     bi io_vecs, bi_vcnt 
bi idx.

298  13