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 <[email protected]>
> ---
> 
> --- 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
> [email protected]
> http://www.open-fcoe.org/mailman/listinfo/devel
_______________________________________________
devel mailing list
[email protected]
http://www.open-fcoe.org/mailman/listinfo/devel

Reply via email to