On 06/06/12 15:28, Mike Christie wrote: > On 06/06/2012 10:04 AM, Bart Van Assche wrote: >> I'm not sure. If a requeued request times out before blk_cleanup_queue() >> is invoked then it's possible that the requeue_work is started after the >> struct scsi_device has already been deleted. > > Won't the cancel_work_sync call you are adding prevent that? After > blk_cleanup_queue has returned we know that no IO is running or in the > eh, and we know no new IO will be started. And then, after the > cancel_work_sync call you are adding has returned we know that there > will not be any workstruct queued or running. We've probably each made different assumptions about whether or not the requeue work scheduling happens under the queue lock, so we're probably both right. I'll prepare, test and post a new patch set, that will make the discussion easier. 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