Mike Christie wrote:
> Dev, Vasu wrote:
>>>> exch_done would then need to be modified so that instead of
>>>> fc_exch_release doing
>>>>
>>>>                  spin_lock_bh(&mp->em_lock);
>>>>                  WARN_ON(mp->total_exches <= 0);
>>>>                  mp->total_exches--;
>>>>                  mp->exches[ep->xid - mp->min_xid] = NULL;
>>>>                  list_del(&ep->ex_list);
>>>>                  spin_unlock_bh(&mp->em_lock);
>>>>
>>>> exch_done would do that, then release its hold. And actually exch_done
>>>> would need to check that if there were multiple ep->resp functions (one
>>>> from fc_fcp_send_cmd and one from the abort) then we do not do the mp
>>>> manipulation above until the exch_done has been called for the last
>>>> ep->resp.
>>>>
>> I don't understand calling exch_done() twice from upper layer of fc_exch.c
>> and checking for multiple ep->resp functions to fix above described issue
> 
> Do you mean you do not understand how moving the clearing of the mp 
> exches ref removes the need for the hack to add the extra check refcount 
> check in the original patch?
> 

Oh yeah, just to make sure we are not the same page. all these solutions 
just result in us not needing that hack where the ep release function 
does the extra refcount check right?
_______________________________________________
devel mailing list
[email protected]
http://www.open-fcoe.org/mailman/listinfo/devel

Reply via email to