Re: BUG: CD driver sends command during host removal

James Bottomley
2004-09-29T20:41:22Z

On Wed, 2004-09-29 at 16:31, Mike Anderson wrote:
> James Bottomley [James.Bottomley@SteelEye.com] wrote:
> > Once you've called scsi_remove_host() the mid-layer will take control of
> > your in-flight commands (if there are any) and error them back to the
> > user. You need to take any actions to clean up internal structures
> > belonging to the commands *before* you do a scsi_remove_host.
> >
>
> How do we address the problem we get into with the reordering in
> scsi_remove_host (i.e. the call to scsi_forget_host prior to
> scsi_host_cancel) if we possibly generate new io from sd_sync_cache
> that will cause the error handler to fire up if the LLDD just lets the
> command fall on the floor with no response.

That's why LLD's are responsible for erroring all commands issued at
this time if the removal is a surprise ejection. The commands have to
be errored in a way (like DID_NO_CONNECT) that won't excite the error
handler.

James