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 accessthis member. Some members may contain D classifications, but should only beaccess through certain macros or functions (eg ->flags).
<linux/blkdev.h>
| Member | Flag | Comment |
|---|---|---|
| struct list_head queuelist | BI | Organization on various internalqueues |
void*elevator_private | I | I/O scheduler private data |
| unsigned char cmd[16] | D | Driver can use this for setting upa cdb before execution, seeblk_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 gathersegments in a request |
| unsigned short nr_hw_segments | DB | Number of hardware scatter gathersegments in a request |
| unsigned int current_nr_sectors | DB | Number of sectors in first segmentof request |
| unsigned int hard_cur_sectors | B | Used to keep current_nr_sectors sane |
| int tag | DB | TCQ tag, if assigned |
void*special | D | Free to be used by driver |
char*buffer | D | Map of first segment, also seesection on bouncing SECTION |
structcompletion*waiting | D | Can be used by driver to get signalledon request completion |
structbio*bio | DBI | First bio in request |
structbio*biotail | DBI | Last bio in request |
structrequest_queue*q | DB | Request queue this request belongs to |
structrequest_list*rl | B | Request list this request came from |