treewide: remove redundant IS_ERR() before error code check
[linux/fpc-iii.git] / Documentation / block / request.rst
blob747021e1ffdbd70cea68f1606d1666d79e20ce85
1 ============================
2 struct request documentation
3 ============================
5 Jens Axboe <jens.axboe@oracle.com> 27/05/02
8 .. FIXME:
9    No idea about what does mean - seems just some noise, so comment it
11    1.0
12    Index
14    2.0 Struct request members classification
16        2.1 struct request members explanation
18    3.0
21    2.0
25 Short explanation of request members
26 ====================================
28 Classification flags:
30         =       ====================
31         D       driver member
32         B       block layer member
33         I       I/O scheduler member
34         =       ====================
36 Unless an entry contains a D classification, a device driver must not access
37 this member. Some members may contain D classifications, but should only be
38 access through certain macros or functions (eg ->flags).
40 <linux/blkdev.h>
42 =============================== ======= =======================================
43 Member                          Flag    Comment
44 =============================== ======= =======================================
45 struct list_head queuelist      BI      Organization on various internal
46                                         queues
48 ``void *elevator_private``      I       I/O scheduler private data
50 unsigned char cmd[16]           D       Driver can use this for setting up
51                                         a cdb before execution, see
52                                         blk_queue_prep_rq
54 unsigned long flags             DBI     Contains info about data direction,
55                                         request type, etc.
57 int rq_status                   D       Request status bits
59 kdev_t rq_dev                   DBI     Target device
61 int errors                      DB      Error counts
63 sector_t sector                 DBI     Target location
65 unsigned long hard_nr_sectors   B       Used to keep sector sane
67 unsigned long nr_sectors        DBI     Total number of sectors in request
69 unsigned long hard_nr_sectors   B       Used to keep nr_sectors sane
71 unsigned short nr_phys_segments DB      Number of physical scatter gather
72                                         segments in a request
74 unsigned short nr_hw_segments   DB      Number of hardware scatter gather
75                                         segments in a request
77 unsigned int current_nr_sectors DB      Number of sectors in first segment
78                                         of request
80 unsigned int hard_cur_sectors   B       Used to keep current_nr_sectors sane
82 int tag                         DB      TCQ tag, if assigned
84 ``void *special``               D       Free to be used by driver
86 ``char *buffer``                D       Map of first segment, also see
87                                         section on bouncing SECTION
89 ``struct completion *waiting``  D       Can be used by driver to get signalled
90                                         on request completion
92 ``struct bio *bio``             DBI     First bio in request
94 ``struct bio *biotail``         DBI     Last bio in request
96 ``struct request_queue *q``     DB      Request queue this request belongs to
98 ``struct request_list *rl``     B       Request list this request came from
99 =============================== ======= =======================================