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 |