Re: Questions about scsi_target_reap and starget/sdev lifecyle

Alan Stern
2005-06-21T20:33:16Z

On Tue, 21 Jun 2005, Christoph Hellwig wrote:

> On Tue, Jun 21, 2005 at 04:04:06PM -0400, Alan Stern wrote:
> > This objection runs up against an issue we discussed some time ago.
> > Should the intended meaning of scsi_remove_host be simply that the kernel
> > needs to stop using the HBA reasonably soon? In that case you are right.
> > Or should the intended meaning be that the HBA is actually gone
> > (hot-unplugged) and all further attempts to use it will fail? In that
> > case it doesn't matter. The best ways to resolve this issue may be to
> > have a separate scsi_host_gone routine or to add an extra argument to
> > scsi_remove_host.
>
> It must mean both because we don't know whether a hot unplug happened or
> not. The ->remove callbacks don't tell us.

I would describe it differently: Since you don't know whether a hot-unplug
occurred, you might as well assume it did not. There's no harm in this,
because if the HBA really was unplugged then it doesn't matter what you
do; everything will fail.

But those sd flush-cache commands are a problem. Presumably you want to
send them _after_ all the outstanding commands have finished or been
cancelled. What's the right way to allow those commands while rejecting
all others?

Alan Stern