1__GENERIC_MAKE_REQUE(9) Block Devices __GENERIC_MAKE_REQUE(9)
2
3
4
6 __generic_make_request - hand a buffer to its device driver for I/O
7
9 void __generic_make_request(struct bio * bio);
10
12 bio
13 The bio describing the location in memory and on the device.
14
16 generic_make_request is used to make I/O requests of block devices. It
17 is passed a struct bio, which describes the I/O that needs to be done.
18
19 generic_make_request does not return any status. The success/failure
20 status of the request, along with notification of completion, is
21 delivered asynchronously through the bio->bi_end_io function described
22 (one day) else where.
23
24 The caller of generic_make_request must make sure that bi_io_vec are
25 set to describe the memory buffer, and that bi_dev and bi_sector are
26 set to describe the device address, and the bi_end_io and optionally
27 bi_private are set to describe how completion notification should be
28 signaled.
29
30 generic_make_request and the drivers it calls may use bi_next if this
31 bio happens to be merged with someone else, and may change bi_dev and
32 bi_sector for remaps as it sees fit. So the values of these fields
33 should NOT be depended on after the call to generic_make_request.
34
36Kernel Hackers Manual 2.6. June 2019 __GENERIC_MAKE_REQUE(9)