On 05/04/2012 10:07 AM, Bart Van Assche wrote: > It is possible that a SCSI LLD invokes scsi_remove_host() after a > request has been queued via scsi_host_template.queuecommand() but > before scsi_done() has been invoked for that request. This may If that happens won't we wait in blk_cleanup_queue->blk_drain_queue for that IO to be completed (completed normally or timed out and processed through that path)? Is the point that once we call scsi_remove_host that the LLD is not going to process any more IO so IO will timeout, so just call blk_abort_queue to speed up that cleanup? If so I can see where you are coming from. I do not know if that is correct behavior though. Like it has been discussed before the scsi ULD shutdown code runs from this path, so IO is sent. All FC drivers are failing that IO as well as some other drivers like you said, so I do not know if that is a bug in the FC drivers or the SCSI ULD shutdown/remove code should not be sending IO??? I thought we were supposed to still execute that IO. > --- > drivers/scsi/scsi_sysfs.c | 1 + > 1 files changed, 1 insertions(+), 0 deletions(-) > > diff --git a/drivers/scsi/scsi_sysfs.c b/drivers/scsi/scsi_sysfs.c > index f8fc240..a61051d 100644 > --- a/drivers/scsi/scsi_sysfs.c > +++ b/drivers/scsi/scsi_sysfs.c > @@ -963,6 +963,7 @@ void __scsi_remove_device(struct scsi_device *sdev) > * scsi_device_dev_release_usercontext(). > */ > blk_cleanup_queue(q); > + blk_abort_queue(q); > > if (sdev->is_visible) { > if (scsi_device_set_state(sdev, SDEV_CANCEL) != 0) -- To unsubscribe from this list: send the line "unsubscribe linux-scsi" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html