Jeff Garzik wrote:
> Brian King wrote:
>> +    spin_lock_irqsave(hostdata->host->host_lock, flags);
>> +    list_for_each_entry_safe(tmp_evt, pos, &hostdata->sent, list) {
>> +            list_del(&tmp_evt->list);
>> +            del_timer(&tmp_evt->timer);
>> +            if (tmp_evt->cmnd) {
>> +                    tmp_evt->cmnd->result = (error_code << 16);
>> +                    unmap_cmd_data(&tmp_evt->iu.srp.cmd,
>> +                                   tmp_evt,
>> +                                   tmp_evt->hostdata->dev);
>> +                    if (tmp_evt->cmnd_done)
>> +                            tmp_evt->cmnd_done(tmp_evt->cmnd);
>> +            } else if (tmp_evt->done)
>> +                    tmp_evt->done(tmp_evt);
>> +            free_event_struct(&tmp_evt->hostdata->pool, tmp_evt);
>> +    }
>> +    spin_unlock_irqrestore(hostdata->host->host_lock, flags);
> 
> 
> Since it's been so long since I bothered with the old-style error 
> handling, a dumb question:
> 
> Are you sure that you should be completing the commands in the host 
> reset handler?  I thought EH took care of that, and your sole task in 
> the host reset handler was to reset everything attached to a single 
> scsi_host.

As far as scsi core is concerned, it really doesn't care either way.
The first thing scsi_done does is call scsi_delete_timer, which will
find that the timer has already expired/been deleted, which will cause
scsi_done to essentially do nothing.

Brian

-- 
Brian King
Linux on Power Virtualization
IBM Linux Technology Center
-
To unsubscribe from this list: send the line "unsubscribe linux-scsi" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to