1LL_RW_BLOCK(9) The Linux VFS LL_RW_BLOCK(9)
2
3
4
6 ll_rw_block - level access to block devices (DEPRECATED)
7
9 void ll_rw_block(int rw, int nr, struct buffer_head * bhs[]);
10
12 rw
13 whether to READ or WRITE or SWRITE or maybe READA (readahead)
14
15 nr
16 number of struct buffer_heads in the array
17
18 bhs[]
19 array of pointers to struct buffer_head
20
22 ll_rw_block takes an array of pointers to struct buffer_heads, and
23 requests an I/O operation on them, either a READ or a WRITE. The third
24 SWRITE is like WRITE only we make sure that the *current* data in
25 buffers are sent to disk. The fourth READA option is described in the
26 documentation for generic_make_request which ll_rw_block calls.
27
28 This function drops any buffer that it cannot get a lock on (with the
29 BH_Lock state bit) unless SWRITE is required, any buffer that appears
30 to be clean when doing a write request, and any buffer that appears to
31 be up-to-date when doing read request. Further it marks as clean
32 buffers that are processed for writing (the buffer cache won't assume
33 that they are actually clean until the buffer gets unlocked).
34
35 ll_rw_block sets b_end_io to simple completion handler that marks the
36 buffer up-to-date (if approriate), unlocks the buffer and wakes any
37 waiters.
38
39 All of the buffers must be for the same device, and must also be a
40 multiple of the current approved size for the device.
41
43Kernel Hackers Manual 2.6. November 2011 LL_RW_BLOCK(9)