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