On Sat, Oct 23, 2010 at 2:57 AM, Joe Eykholt <jeykholt@xxxxxxxxx> wrote: > > > 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 In case of fc_exch_pool_reset(), each exch on ex_list is delivered to fc_exch_reset(), so "another" and "that" exch are treated in same way. After cleanup, then the resp handler, if attached, is issued with FC_EX_CLOSED, so no more work left for the resp handler. If still needed, overwork occurs before calling resp handler. > still needs to be released. ÂI could be wrong, it's been a while. > >> Signed-off-by: Hillf Danton <dhillf@xxxxxxxxx> >> --- >> >> --- 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@xxxxxxxxxxxxx >> http://www.open-fcoe.org/mailman/listinfo/devel > -- To unsubscribe from this list: send the line "unsubscribe linux-scsi" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html