1<html><head><meta http-equiv="Content-Type" content="text/html; charset=ANSI_X3.4-1968"><title>blk_queue_start_tag</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="blkdev.html" title="Chapter&#160;14.&#160;Block Devices"><link rel="prev" href="API-blk-queue-end-tag.html" title="blk_queue_end_tag"><link rel="next" href="API-blk-queue-invalidate-tags.html" title="blk_queue_invalidate_tags"></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">blk_queue_start_tag</span></th></tr><tr><td width="20%" align="left"><a accesskey="p" href="API-blk-queue-end-tag.html">Prev</a>&#160;</td><th width="60%" align="center">Chapter&#160;14.&#160;Block Devices</th><td width="20%" align="right">&#160;<a accesskey="n" href="API-blk-queue-invalidate-tags.html">Next</a></td></tr></table><hr></div><div class="refentry"><a name="API-blk-queue-start-tag"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>blk_queue_start_tag &#8212; 
2     find a free tag and assign it
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">blk_queue_start_tag </b>(</code></td><td>struct request_queue * <var class="pdparam">q</var>, </td></tr><tr><td>&#160;</td><td>struct request * <var class="pdparam">rq</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer">&#160;</div></div></div><div class="refsect1"><a name="idp1128765820"></a><h2>Arguments</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>q</code></em></span></dt><dd><p>
4     the request queue for the device
5    </p></dd><dt><span class="term"><em class="parameter"><code>rq</code></em></span></dt><dd><p>
6     the block request that needs tagging
7    </p></dd></dl></div></div><div class="refsect1"><a name="idp1128768452"></a><h2>Description</h2><p>
8   This can either be used as a stand-alone helper, or possibly be
9   assigned as the queue <span class="structname">prep_rq_fn</span> (in which case <span class="structname">struct request</span>
10   automagically gets a tag assigned). Note that this function
11   assumes that any type of request can be queued! if this is not
12   true for your device, you must check the request type before
13   calling this function.  The request will also be removed from
14   the request queue, so it's the drivers responsibility to readd
15   it if it should need to be restarted for some reason.
16</p></div><div class="refsect1"><a name="idp1128769988"></a><h2>Notes</h2><p>
17   queue lock must be held.
18</p></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="API-blk-queue-end-tag.html">Prev</a>&#160;</td><td width="20%" align="center"><a accesskey="u" href="blkdev.html">Up</a></td><td width="40%" align="right">&#160;<a accesskey="n" href="API-blk-queue-invalidate-tags.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top"><span class="phrase">blk_queue_end_tag</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">blk_queue_invalidate_tags</span></td></tr></table></div></body></html>
19