---
name: "generic_make_request"
section: "9"
platform: "linux"
package: "linux-manual-4.9"
version: "4.9.228-1"
release: "Debian 9 (Stretch)"
platforms: ["linux"]
url: "https://new.carta.tech/generic_make_request"
---

# generic\_make\_request(9)

hand a buffer to its device driver for I/O

## NAME

generic\_make\_request - hand a buffer to its device driver for I/O

## SYNOPSIS

**blk\_qc\_t generic\_make\_request(struct bio \*** *bio***);**

## ARGUMENTS

*bio*

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

## DESCRIPTION

**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 resubmit the bio to a lower device by calling into generic\_make\_request recursively, which means the bio should NOT be touched after the call to -\>make\_request\_fn.

## COPYRIGHT
