1<html><head><meta http-equiv="Content-Type" content="text/html; charset=ANSI_X3.4-1968"><title>blk_rq_check_limits</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-submit-bio.html" title="submit_bio"><link rel="next" href="API-blk-insert-cloned-request.html" title="blk_insert_cloned_request"></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_rq_check_limits</span></th></tr><tr><td width="20%" align="left"><a accesskey="p" href="API-submit-bio.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-insert-cloned-request.html">Next</a></td></tr></table><hr></div><div class="refentry"><a name="API-blk-rq-check-limits"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>blk_rq_check_limits &#8212; 
2     Helper function to check a request for the queue limit
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_rq_check_limits </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="idp1127943828"></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 queue
5    </p></dd><dt><span class="term"><em class="parameter"><code>rq</code></em></span></dt><dd><p>
6     the request being checked
7    </p></dd></dl></div></div><div class="refsect1"><a name="idp1127946436"></a><h2>Description</h2><p>
8   <em class="parameter"><code>rq</code></em> may have been made based on weaker limitations of upper-level queues
9   in request stacking drivers, and it may violate the limitation of <em class="parameter"><code>q</code></em>.
10   Since the block layer and the underlying device driver trust <em class="parameter"><code>rq</code></em>
11   after it is inserted to <em class="parameter"><code>q</code></em>, it should be checked against <em class="parameter"><code>q</code></em> before
12   the insertion using this generic function.
13   </p><p>
14
15   This function should also be useful for request stacking drivers
16   in some cases below, so export this function.
17   Request stacking drivers like request-based dm may change the queue
18   limits while requests are in the queue (e.g. dm's table swapping).
19   Such request stacking drivers should check those requests against
20   the new queue limits again when they dispatch those requests,
21   although such checkings are also done against the old queue limits
22   when submitting requests.
23</p></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="API-submit-bio.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-insert-cloned-request.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top"><span class="phrase">submit_bio</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_insert_cloned_request</span></td></tr></table></div></body></html>
24