On 05/04/12 20:25, Mike Christie wrote: > 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)? As far as I understand the block layer requests that have been queued but for which scsi_request_fn() has not yet been invoked are on the request_queue.queue_head list. Requests that have been passed to the SCSI LLD but for which scsi_done() has not yet been invoked are on the request_queue.timeout_list list. blk_drain_queue() works on the former list while blk_abort_queue() processes the latter. Bart. -- 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