.\" This manpage has been automatically generated by docbook2man .\" from a DocBook document. This tool can be found at: .\" .\" Please send any bug reports, improvements, comments, patches, .\" etc. to Steve Cheng . .TH "GENERIC_MAKE_REQUEST" "" "06 October 2005" "" "" .SH NAME generic_make_request \- .SH SYNOPSIS "SYNOPSIS" .sp \fB .sp void generic_make_request (struct bio * \fIbio\fB); \fR .SH "ARGUMENTS" .TP \fB\fIbio\fB\fR The bio describing the location in memory and on the device. .SH "DESCRIPTION" .PP \fBgeneric_make_request\fR is used to make I/O requests of block devices. It is passed a &struct bio, which describes the I/O that needs to be done. .PP \fBgeneric_make_request\fR does not return any status. The success/failure status of the request, along with notification of completion, is delivered asynchronously through the bio->bi_end_io function described (one day) else where. .PP The caller of generic_make_request must make sure that bi_io_vec are set to describe the memory buffer, and that bi_dev and bi_sector are set to describe the device address, and the bi_end_io and optionally bi_private are set to describe how completion notification should be signaled. .PP generic_make_request and the drivers it calls may use bi_next if this bio happens to be merged with someone else, and may change bi_dev and bi_sector for remaps as it sees fit. So the values of these fields should NOT be depended on after the call to generic_make_request.