1<html><head><meta http-equiv="Content-Type" content="text/html; charset=ANSI_X3.4-1968"><title>replace_page_cache_page</title><meta name="generator" content="DocBook XSL Stylesheets V1.78.1"><link rel="home" href="index.html" title="The Linux Kernel API"><link rel="up" href="ch04s03.html" title="More Memory Management Functions"><link rel="prev" href="API-filemap-write-and-wait-range.html" title="filemap_write_and_wait_range"><link rel="next" href="API-add-to-page-cache-locked.html" title="add_to_page_cache_locked"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center"><span class="phrase">replace_page_cache_page</span></th></tr><tr><td width="20%" align="left"><a accesskey="p" href="API-filemap-write-and-wait-range.html">Prev</a>&#160;</td><th width="60%" align="center">More Memory Management Functions</th><td width="20%" align="right">&#160;<a accesskey="n" href="API-add-to-page-cache-locked.html">Next</a></td></tr></table><hr></div><div class="refentry"><a name="API-replace-page-cache-page"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>replace_page_cache_page &#8212; 
2     replace a pagecache page with a new one
3 </p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="funcsynopsis"><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">replace_page_cache_page </b>(</code></td><td>struct page * <var class="pdparam">old</var>, </td></tr><tr><td>&#160;</td><td>struct page * <var class="pdparam">new</var>, </td></tr><tr><td>&#160;</td><td>gfp_t <var class="pdparam">gfp_mask</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer">&#160;</div></div></div><div class="refsect1"><a name="idp1124055420"></a><h2>Arguments</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>old</code></em></span></dt><dd><p>
4     page to be replaced
5    </p></dd><dt><span class="term"><em class="parameter"><code>new</code></em></span></dt><dd><p>
6     page to replace with
7    </p></dd><dt><span class="term"><em class="parameter"><code>gfp_mask</code></em></span></dt><dd><p>
8     allocation mode
9    </p></dd></dl></div></div><div class="refsect1"><a name="idp1124059044"></a><h2>Description</h2><p>
10   This function replaces a page in the pagecache with a new one.  On
11   success it acquires the pagecache reference for the new page and
12   drops it for the old page.  Both the old and new pages must be
13   locked.  This function does not add the new page to the LRU, the
14   caller must do that.
15   </p><p>
16
17   The remove + add is atomic.  The only way this function can fail is
18   memory allocation failure.
19</p></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="API-filemap-write-and-wait-range.html">Prev</a>&#160;</td><td width="20%" align="center"><a accesskey="u" href="ch04s03.html">Up</a></td><td width="40%" align="right">&#160;<a accesskey="n" href="API-add-to-page-cache-locked.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top"><span class="phrase">filemap_write_and_wait_range</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 class="phrase">add_to_page_cache_locked</span></td></tr></table></div></body></html>
20