On Wed, 24 Jan 2007 00:11:47 +1100 Aboo Valappil wrote: > Hi Stefan Richter, > > Thanks everyone for their advice on this. As per your advice, I did the > following when the last user space target serving the scsi_host quits, > the queue command will do the following on the new commands coming through. > > sc->result = DID_NO_CONNECT << 16; > sc->resid = sc->request_bufflen; > set_sensedata_commfailure(sc); --------------------- > This sets the sense buffer with Device Not ready/Logical Unit > Commincation failure. > done(sc); > > The scsi_host will remain in the kernel. Let the EH thread handle the > queued commands (If any). If the user target wants to reconnects to the > same scsi_host, it can do so (Just re-run the user space target again > with same command line paramters). This connection from newly started > target will make the HBA healthy again and start serving IO. > > I implemented a new IOCTL to remove this scsi_host if the user > process really needs to. This removal will first finish all the SCSI > commands (With the above status results) queued on the scsi_host (If at > all) and then remove the scsi_host. Also the module unload will delete > all the scsi_hosts created after finishing all the commands queued with > the above status and sense information. > > I also implemented passing of sense code information from user space to > sense_buffer. A little more work needs to be done on this. > Also, I need to make sure that all the locking used inside is correctly > implemented to prevent dead locks and improve efficiency. > > The new version is available http://vscsihba.aboo.org/vscsihbav204.gz 404: NOT FOUND --- ~Randy - 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