struct request documentation¶
Jens Axboe <jens.axboe@oracle.com> 27/05/02
Short explanation of request members¶
Classification flags:
D
driver member
B
block layer member
I
I/O scheduler member
Unless an entry contains a D classification, a device driver must not access this member. Some members may contain D classifications, but should only be access through certain macros or functions (eg ->flags).
<linux/blkdev.h>
Member  | 
Flag  | 
Comment  | 
|---|---|---|
struct list_head queuelist  | 
BI  | 
Organization on various internal queues  | 
  | 
I  | 
I/O scheduler private data  | 
unsigned char cmd[16]  | 
D  | 
Driver can use this for setting up a cdb before execution, see blk_queue_prep_rq  | 
unsigned long flags  | 
DBI  | 
Contains info about data direction, request type, etc.  | 
int rq_status  | 
D  | 
Request status bits  | 
kdev_t rq_dev  | 
DBI  | 
Target device  | 
int errors  | 
DB  | 
Error counts  | 
sector_t sector  | 
DBI  | 
Target location  | 
unsigned long hard_nr_sectors  | 
B  | 
Used to keep sector sane  | 
unsigned long nr_sectors  | 
DBI  | 
Total number of sectors in request  | 
unsigned long hard_nr_sectors  | 
B  | 
Used to keep nr_sectors sane  | 
unsigned short nr_phys_segments  | 
DB  | 
Number of physical scatter gather segments in a request  | 
unsigned short nr_hw_segments  | 
DB  | 
Number of hardware scatter gather segments in a request  | 
unsigned int current_nr_sectors  | 
DB  | 
Number of sectors in first segment of request  | 
unsigned int hard_cur_sectors  | 
B  | 
Used to keep current_nr_sectors sane  | 
int tag  | 
DB  | 
TCQ tag, if assigned  | 
  | 
D  | 
Free to be used by driver  | 
  | 
D  | 
Map of first segment, also see section on bouncing SECTION  | 
  | 
D  | 
Can be used by driver to get signalled on request completion  | 
  | 
DBI  | 
First bio in request  | 
  | 
DBI  | 
Last bio in request  | 
  | 
DB  | 
Request queue this request belongs to  | 
  | 
B  | 
Request list this request came from  |