Sophie

Sophie

distrib > CentOS > 6 > i386 > by-pkgid > cf93d8a8acdcc6fe2225039da0502495 > files > 1245

kernel-doc-2.6.32-131.17.1.el6.centos.plus.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>journal_get_undo_access</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="ch05s03.html#transaction_level" title="Transasction Level" /><link rel="prev" href="re202.html" title="journal_get_create_access" /><link rel="next" href="re204.html" title="journal_dirty_data" /></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center"><span>journal_get_undo_access</span></th></tr><tr><td width="20%" align="left"><a accesskey="p" href="re202.html">Prev</a>&#160;</td><th width="60%" align="center">Transasction Level</th><td width="20%" align="right">&#160;<a accesskey="n" href="re204.html">Next</a></td></tr></table><hr /></div><div class="refentry" title="journal_get_undo_access"><a id="API-journal-get-undo-access"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>journal_get_undo_access &#8212; 
     Notify intent to modify metadata with non-rewindable consequences
 </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">int <b class="fsfunc">journal_get_undo_access </b>(</code></td><td>handle_t * <var class="pdparam">handle</var>, </td></tr><tr><td>&#160;</td><td>struct buffer_head * <var class="pdparam">bh</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer">&#160;</div></div></div><div class="refsect1" title="Arguments"><a id="id3035342"></a><h2>Arguments</h2><div class="variablelist"><dl><dt><span class="term"><em class="parameter"><code>handle</code></em></span></dt><dd><p>
     transaction
    </p></dd><dt><span class="term"><em class="parameter"><code>bh</code></em></span></dt><dd><p>
     buffer to undo
    </p></dd></dl></div></div><div class="refsect1" title="Description"><a id="id3035385"></a><h2>Description</h2><p>
   Sometimes there is a need to distinguish between metadata which has
   been committed to disk and that which has not.  The ext3fs code uses
   this for freeing and allocating space, we have to make sure that we
   do not reuse freed space until the deallocation has been committed,
   since if we overwrote that space we would make the delete
   un-rewindable in case of a crash.
   </p><p>

   To deal with that, journal_get_undo_access requests write access to a
   buffer for parts of non-rewindable operations such as delete
   operations on the bitmaps.  The journaling code must keep a copy of
   the buffer's contents prior to the undo_access call until such time
   as we know that the buffer has definitely been committed to disk.
   </p><p>

   We never need to know which transaction the committed data is part
   of, buffers touched here are guaranteed to be dirtied later and so
   will be committed to a new transaction in due course, at which point
   we can discard the old committed data pointer.
   </p><p>

   Returns error number or 0 on success.
</p></div></div><div class="navfooter"><hr /><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="re202.html">Prev</a>&#160;</td><td width="20%" align="center"><a accesskey="u" href="ch05s03.html#transaction_level">Up</a></td><td width="40%" align="right">&#160;<a accesskey="n" href="re204.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top"><span>journal_get_create_access</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>journal_dirty_data</span></td></tr></table></div></body></html>