From mboxrd@z Thu Jan 1 00:00:00 1970 From: Joe Eykholt Subject: Re: [PATCH] libfc: fix error handling in fc_exch_rrq_resp() Date: Fri, 22 Oct 2010 11:57:51 -0700 Message-ID: <4CC1DEAF.50403@cisco.com> References: Mime-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Return-path: In-Reply-To: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: devel-bounces-s9riP+hp16TNLxjTenLetw@public.gmane.org Errors-To: devel-bounces-s9riP+hp16TNLxjTenLetw@public.gmane.org To: Hillf Danton Cc: devel-s9riP+hp16TNLxjTenLetw@public.gmane.org, linux-scsi-u79uwXL29TY76Z2rM5mHXA@public.gmane.org List-Id: linux-scsi@vger.kernel.org On 10/22/10 8:21 AM, Hillf Danton wrote: > There seems no cleanup left when FC_EX_CLOSED encountered, which may > be from fc_exch_reset(). Are you sure? It seems that the RRQ exchange has a hold on another exchange, the one that's the subject of the RRQ. That exchange still needs to be released. I could be wrong, it's been a while. > Signed-off-by: Hillf Danton > --- > > --- a/drivers/scsi/libfc/fc_exch.c 2010-09-13 07:07:38.000000000 +0800 > +++ b/drivers/scsi/libfc/fc_exch.c 2010-10-22 23:17:50.000000000 +0800 > @@ -1827,7 +1827,9 @@ static void fc_exch_rrq_resp(struct fc_s > if (IS_ERR(fp)) { > int err = PTR_ERR(fp); > > - if (err == -FC_EX_CLOSED || err == -FC_EX_TIMEOUT) > + if (err == -FC_EX_CLOSED) > + return; > + if (err == -FC_EX_TIMEOUT) > goto cleanup; > FC_EXCH_DBG(aborted_ep, "Cannot process RRQ, " > "frame error %d\n", err); > _______________________________________________ > devel mailing list > devel-s9riP+hp16TNLxjTenLetw@public.gmane.org > http://www.open-fcoe.org/mailman/listinfo/devel