On Wed, 2004-09-29 at 14:58, Luben Tuikov wrote:
> Does this mean that scsi_device_cancel() should set the result
> code to DID_NO_CONNECT either?

No, I think for in-flight commands, DID_ERROR is the safest.  They
could, after all have partially deposited their data load before being
cancelled.  DID_NO_CONNECT means that no processing was ever done.

> > Right.  scsi_remove_host tells the mid-layer that it's OK to trash all
> > inflight commands because you removed all their users before calling
> > it.  It also tells us that you won't accept any future commands for this
> > host (because you'll error any attempt in queuecommand).
> 
> Do you mean to say that when scsi_remove_host() is called,
> the LLDD must no own any commands?  This is good, it means
> that the LLDD plugged queuecommand(), did "recovery" of
> pending commands and is ready for slave_destroy().

No.  It's up to the LLD.  If it wants to complete all its commands then
call scsi_remove_host(), that's fine.  However it's also fine for it to
call  scsi_remove_host() with pending in-flight commands; if it does,
ownership of these is transferred back to the mid-layer and we cancel
them all.

James




-------------------------------------------------------
This SF.net email is sponsored by: IT Product Guide on ITManagersJournal
Use IT products in your business? Tell us what you think of them. Give us
Your Opinions, Get Free ThinkGeek Gift Certificates! Click to find out more
http://productguide.itmanagersjournal.com/guidepromo.tmpl
_______________________________________________
[EMAIL PROTECTED]
To unsubscribe, use the last form field at:
https://lists.sourceforge.net/lists/listinfo/linux-usb-users

Reply via email to