Provided by: linux-doc-2.6.15_2.6.15-23.39_all bug

NAME

       ll_rw_block - level access to block devices (DEPRECATED)

SYNOPSIS

       void ll_rw_block  (int rw, int nr, struct buffer_head * bhs[]);

ARGUMENTS

       rw     whether to READ or WRITE or SWRITE or maybe READA (readahead)

       nr     number of &struct buffer_heads in the array

       bhs[]  array of pointers to &struct buffer_head

DESCRIPTION

        ll_rw_block  takes  an  array of pointers to &struct buffer_heads, and
       requests an I/O operation on them, either a READ or a WRITE. The  third
       SWRITE  is  like  WRITE  only  we  make sure that the *current* data in
       buffers are sent to disk. The fourth READA option is described  in  the
       documentation for generic_make_request which ll_rw_block calls.

       This  function  drops any buffer that it cannot get a lock on (with the
       BH_Lock state bit) unless SWRITE is required, any buffer  that  appears
       to  be clean when doing a write request, and any buffer that appears to
       be up-to-date when doing  read  request.  Further  it  marks  as  clean
       buffers  that  are processed for writing (the buffer cache won’t assume
       that they are actually clean until the buffer gets unlocked).

       ll_rw_block sets b_end_io to simple completion handler that  marks  the
       buffer  up-to-date  (if  approriate),  unlocks the buffer and wakes any
       waiters.

       All of the buffers must be for the same device,  and  must  also  be  a
       multiple of the current approved size for the device.