1<html><head><meta http-equiv="Content-Type" content="text/html; charset=ANSI_X3.4-1968"><title>srp_reconnect_rport</title><meta name="generator" content="DocBook XSL Stylesheets V1.78.1"><link rel="home" href="index.html" title="SCSI Interfaces Guide"><link rel="up" href="Transport_classes.html#SRP_transport" title="SCSI RDMA (SRP) transport class"><link rel="prev" href="API-srp-start-tl-fail-timers.html" title="srp_start_tl_fail_timers"><link rel="next" href="API-srp-rport-get.html" title="srp_rport_get"></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">srp_reconnect_rport</span></th></tr><tr><td width="20%" align="left"><a accesskey="p" href="API-srp-start-tl-fail-timers.html">Prev</a>&#160;</td><th width="60%" align="center">SCSI RDMA (SRP) transport class</th><td width="20%" align="right">&#160;<a accesskey="n" href="API-srp-rport-get.html">Next</a></td></tr></table><hr></div><div class="refentry"><a name="API-srp-reconnect-rport"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>srp_reconnect_rport &#8212; 
2     reconnect to an SRP target port
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">srp_reconnect_rport </b>(</code></td><td>struct srp_rport * <var class="pdparam">rport</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer">&#160;</div></div></div><div class="refsect1"><a name="idp1124836276"></a><h2>Arguments</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>rport</code></em></span></dt><dd><p>
4     SRP target port.
5    </p></dd></dl></div></div><div class="refsect1"><a name="idp1124837884"></a><h2>Description</h2><p>
6   Blocks SCSI command queueing before invoking <code class="function">reconnect</code> such that
7   <code class="function">queuecommand</code> won't be invoked concurrently with <code class="function">reconnect</code> from outside
8   the SCSI EH. This is important since a <code class="function">reconnect</code> implementation may
9   reallocate resources needed by <code class="function">queuecommand</code>.
10</p></div><div class="refsect1"><a name="idp1124840468"></a><h2>Notes</h2><p>
11   - This function neither waits until outstanding requests have finished nor
12   tries to abort these. It is the responsibility of the <code class="function">reconnect</code>
13   function to finish outstanding commands before reconnecting to the target
14   port.
15   - It is the responsibility of the caller to ensure that the resources
16   reallocated by the <code class="function">reconnect</code> function won't be used while this function
17   is in progress. One possible strategy is to invoke this function from
18   the context of the SCSI EH thread only. Another possible strategy is to
19   lock the rport mutex inside each SCSI LLD callback that can be invoked by
20   the SCSI EH (the scsi_host_template.eh_*() functions and also the
21   scsi_host_template.<code class="function">queuecommand</code> function).
22</p></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="API-srp-start-tl-fail-timers.html">Prev</a>&#160;</td><td width="20%" align="center"><a accesskey="u" href="Transport_classes.html#SRP_transport">Up</a></td><td width="40%" align="right">&#160;<a accesskey="n" href="API-srp-rport-get.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top"><span class="phrase">srp_start_tl_fail_timers</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">srp_rport_get</span></td></tr></table></div></body></html>
23