1<html><head><meta http-equiv="Content-Type" content="text/html; charset=ANSI_X3.4-1968"><title>list_safe_reset_next</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="adt.html#idp1119950572" title="Doubly Linked Lists"><link rel="prev" href="API-list-for-each-entry-safe-reverse.html" title="list_for_each_entry_safe_reverse"><link rel="next" href="API-hlist-for-each-entry.html" title="hlist_for_each_entry"></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">list_safe_reset_next</span></th></tr><tr><td width="20%" align="left"><a accesskey="p" href="API-list-for-each-entry-safe-reverse.html">Prev</a>&#160;</td><th width="60%" align="center">Doubly Linked Lists</th><td width="20%" align="right">&#160;<a accesskey="n" href="API-hlist-for-each-entry.html">Next</a></td></tr></table><hr></div><div class="refentry"><a name="API-list-safe-reset-next"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>list_safe_reset_next &#8212; 
2     reset a stale list_for_each_entry_safe loop
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"> <b class="fsfunc">list_safe_reset_next </b>(</code></td><td> <var class="pdparam">pos</var>, </td></tr><tr><td>&#160;</td><td> <var class="pdparam">n</var>, </td></tr><tr><td>&#160;</td><td> <var class="pdparam">member</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer">&#160;</div></div></div><div class="refsect1"><a name="idp1122515708"></a><h2>Arguments</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>pos</code></em></span></dt><dd><p>
4     the loop cursor used in the list_for_each_entry_safe loop
5    </p></dd><dt><span class="term"><em class="parameter"><code>n</code></em></span></dt><dd><p>
6     temporary storage used in list_for_each_entry_safe
7    </p></dd><dt><span class="term"><em class="parameter"><code>member</code></em></span></dt><dd><p>
8     the name of the list_head within the struct.
9    </p></dd></dl></div></div><div class="refsect1"><a name="idp1122519356"></a><h2>Description</h2><p>
10   list_safe_reset_next is not safe to use in general if the list may be
11   modified concurrently (eg. the lock is dropped in the loop body). An
12   exception to this is if the cursor element (pos) is pinned in the list,
13   and list_safe_reset_next is called after re-taking the lock and before
14   completing the current iteration of the loop body.
15</p></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="API-list-for-each-entry-safe-reverse.html">Prev</a>&#160;</td><td width="20%" align="center"><a accesskey="u" href="adt.html#idp1119950572">Up</a></td><td width="40%" align="right">&#160;<a accesskey="n" href="API-hlist-for-each-entry.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top"><span class="phrase">list_for_each_entry_safe_reverse</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">hlist_for_each_entry</span></td></tr></table></div></body></html>
16