__generic_make_request(9)

__generic_make_request9

Hand a buffer to its device driver for i/o

Usage

void __generic_make_request(struct bio * bio);

Arguments

bio

The bio describing the location in memory and on the device.

Overview

generic_make_request 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.

generic_make_request 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.

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.

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.

Releases

2 releases since Debian 5.0 (Lenny); the text changed 1 time.

  1. 5.0
  2. 6.0

From linux-manual-2.6.32 2.6.32-48squeeze6 in Debian 6.0 (Squeeze). Parsed by carta from the page's man source.