>-----Original Message-----
>From: Mike Christie [mailto:[EMAIL PROTECTED]
>
>Ok so now I am really lost :) See the attached patch. It looks like if
>fc_seq_lookup_recip returns FC_RJT_NONE then from the fc_exch_find call
>it returns from fc_seq_lookup_recip with a hold on the ep. 

Correct, the ep returned from fc_seq_lookup_recip() will have one
exch hold and that will be used by upper layer as explained below in
detail.

>So in
>fc_exch_recv_req we need to just release it?

The exch hold from fc_seq_lookup_recip() will be released by upper layer
response handler by calling fc_exch_done() but since fc_exch_done() will
not be calling fc_exch_release(). Therfore I added extra fc_exch_hold()
and fc_exch_release() in fc_exch_recv_req() around calling upper layer
handler. This later added fc_exch_release() will free the ep memory. 

Your attached patch has some of the same changes as my sent patch
fixed-exch-rel.patch. I'll merge your attached patch changes except
fc_exch_release() changes with fixed-exch-rel.patch or will apply after
fixed-exch-rel.patch.

>

_______________________________________________
devel mailing list
[email protected]
http://www.open-fcoe.org/mailman/listinfo/devel

Reply via email to