On Fri, 2008-03-07 at 09:13 +0900, Tejun Heo wrote: > James Bottomley wrote: > >> * Driver unload: Dealt the same way as hot unplugging. > > > > This is the problem case: driver unloading should have a > > scsi_remove_host() in its path. This is the trigger that sends out the > > flushes/stops and calls slave_destroy. scsi_remove_host() doesn't > > actually return until all the destroys are completed, so it makes module > > unloading wait until everything is properly shut down. > > > >> Making driver unload like explicit unplug request is possible but it > >> will mean that drives will be spun down on driver unload, which can be > >> annoying to developers. > > > > You have a sysfs flag to prevent that, don't you? > > Yeap, sure. It's the combination of things that always made me put this > off. Is there a function I can call to just shutdown the host instead > of destroying it? Not really ... the process of unbinding the ULDs causes their remove methods to call shudown. It is possible to separate this in the ULDS; but the original design was to make remove and shutdown be similar for the very reason that if you're removing the driver with unflushed data in the cache, we'd really like it flushed (flush is called from shutdown) because you have no way to talk to the device after this without reinserting the driver. James -- To unsubscribe from this list: send the line "unsubscribe linux-ide" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html