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 14. 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> </td><th width="60%" align="center">Chapter 14. Block Devices</th><td width="20%" align="right"> <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 — 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> </td><td>struct request * <var class="pdparam">rq</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </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> </td><td width="20%" align="center"><a accesskey="u" href="blkdev.html">Up</a></td><td width="40%" align="right"> <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> </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> <span class="phrase">blk_queue_invalidate_tags</span></td></tr></table></div></body></html> 19