Re: [PATCH 01/12] libiscsi: Convert to host_lock less w/ interrupts disabled internally

Boaz Harrosh
2010-12-21T10:53:35Z

On 12/21/2010 02:42 AM, Mike Christie wrote:
> On 12/19/2010 03:21 PM, Nicholas A. Bellinger wrote:
>> prepd_fault:
>> @@ -1732,12 +1728,10 @@ fault:
>> scsi_out(sc)->resid = scsi_out(sc)->length;
>> scsi_in(sc)->resid = scsi_in(sc)->length;
>> }
>> - done(sc);
>> - spin_lock(host->host_lock);
>> + sc->scsi_done(sc);
>> return 0;
>
>
> Did you mean to send this patch or a different one? I think you sent a
> patch with this before and I said it was wrong. Did you disagree with
> that comment or did you change something else so it now works?

Mike hi

I think Nick is gone for the holidays. What I understood is that he's
waiting for you to fix it. Because he's not sure what the proper solution
is. Do you have time to look into it? (It will take you much faster then me)

On 12/19/2010 11:21 PM, Nicholas A. Bellinger wrote:
> *) libiscsi: NULL sc->scsi_done() callback in exception path in iscsi_queuecommand().
> The last status on this from Mike Christie was:
>
> "This will NULL pointer. See a couple lines above where we NULL it.
> iscsi_free_task checks if the scsi_done pointer is set and if it is it
> will call scsi_done.
>
> It is a hack to prevent the normal completion path from calling
> scsi_done. For the case where we return SCSI_MLQUEUE_TARGET_BUSY (the
> prepd_reject case) we need something to prevent scsi_done from getting
> called.
>
> For the return 0/prepd_fault case we can just call sc->scsi_done, but we
> have to move some code around."
>
> mnc, have you been able to take another look at this..?
>

Thanks
Boaz