Sophie

Sophie

distrib > CentOS > 6 > i386 > by-pkgid > 2c51d8eb79f8810ada971ee8c30ce1e5 > files > 1331

kernel-doc-2.6.32-71.14.1.el6.noarch.rpm

<?xml version="1.0" encoding="ANSI_X3.4-1968" standalone="no"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=ANSI_X3.4-1968" /><title>ll_rw_block</title><meta name="generator" content="DocBook XSL Stylesheets V1.75.2" /><link rel="home" href="index.html" title="Linux Filesystems API" /><link rel="up" href="ch01s06.html" title="Other Functions" /><link rel="prev" href="re86.html" title="block_invalidatepage" /><link rel="next" href="re88.html" title="bh_uptodate_or_lock" /></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center"><span>ll_rw_block</span></th></tr><tr><td width="20%" align="left"><a accesskey="p" href="re86.html">Prev</a>&#160;</td><th width="60%" align="center">Other Functions</th><td width="20%" align="right">&#160;<a accesskey="n" href="re88.html">Next</a></td></tr></table><hr /></div><div class="refentry" title="ll_rw_block"><a id="API-ll-rw-block"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>ll_rw_block &#8212; 
     level access to block devices (DEPRECATED)
 </p></div><div class="refsynopsisdiv" title="Synopsis"><h2>Synopsis</h2><div class="funcsynopsis"><table border="0" summary="Function synopsis" cellspacing="0" cellpadding="0" class="funcprototype-table"><tr><td><code class="funcdef">void <b class="fsfunc">ll_rw_block </b>(</code></td><td>int <var class="pdparam">rw</var>, </td></tr><tr><td>&#160;</td><td>int <var class="pdparam">nr</var>, </td></tr><tr><td>&#160;</td><td>struct buffer_head * <var class="pdparam">bhs[]</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer">&#160;</div></div></div><div class="refsect1" title="Arguments"><a id="id3109437"></a><h2>Arguments</h2><div class="variablelist"><dl><dt><span class="term"><em class="parameter"><code>rw</code></em></span></dt><dd><p>
     whether to <code class="constant">READ</code> or <code class="constant">WRITE</code> or <code class="constant">SWRITE</code> or maybe <code class="constant">READA</code> (readahead)
    </p></dd><dt><span class="term"><em class="parameter"><code>nr</code></em></span></dt><dd><p>
     number of <span class="structname">struct buffer_heads</span> in the array
    </p></dd><dt><span class="term"><em class="parameter"><code>bhs[]</code></em></span></dt><dd><p>
     array of pointers to <span class="structname">struct buffer_head</span>
    </p></dd></dl></div></div><div class="refsect1" title="Description"><a id="id3109513"></a><h2>Description</h2><p>
   <code class="function">ll_rw_block</code> takes an array of pointers to <span class="structname">struct buffer_heads</span>, and
   requests an I/O operation on them, either a <code class="constant">READ</code> or a <code class="constant">WRITE</code>.  The third
   <code class="constant">SWRITE</code> is like <code class="constant">WRITE</code> only we make sure that the *current* data in buffers
   are sent to disk. The fourth <code class="constant">READA</code> option is described in the documentation
   for <code class="function">generic_make_request</code> which <code class="function">ll_rw_block</code> calls.
   </p><p>

   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).
   </p><p>

   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. 
   </p><p>

   All of the buffers must be for the same device, and must also be a
   multiple of the current approved size for the device.
</p></div></div><div class="navfooter"><hr /><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="re86.html">Prev</a>&#160;</td><td width="20%" align="center"><a accesskey="u" href="ch01s06.html">Up</a></td><td width="40%" align="right">&#160;<a accesskey="n" href="re88.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top"><span>block_invalidatepage</span>&#160;</td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top">&#160;<span>bh_uptodate_or_lock</span></td></tr></table></div></body></html>