On Thursday 05 June 2003 19:50, Kevin Corry wrote: > On Thursday 05 June 2003 12:00, Daniel Phillips wrote: > > On Thursday 05 June 2003 18:47, Kevin Corry wrote: > > > 2) Removing suspended devices. The current code (2.5.70) does not allow > > > a suspended device to be removed/unlinked from the ioctl interface, > > > since removing it would leave you with no way to resume it (and hence > > > flush any pending I/Os). Alasdair mentioned a couple of new ideas. One > > > would be to reload the device with an error-map and force it to resume, > > > thus erroring any pending I/Os and allowing the device to be removed. > > > This seems a bit heavy-handed. > > > > Which is the heavy-handed part? > > The part about automatically reloading the table with an error map and > forcing it to resume. It just seemed to me that user-space ought to be able > to gather enough information to determine that a device needed to be > resumed before it could be removed. Thus the kernel driver wouldn't be > forced to implement such a policy. I didn't see anything about doing that in-kernel. > Talking with Alasadair again, he mentioned a case I hadn't considered. > Devices would now be created without a mapping and initially suspended. If > some other error occurred, and you decided to just delete the device before > loading a mapping, it would fail. And having to resume a device with no > mapping just to be able to delete it definitely seems odd. > > So, it's not like I'm dead-set against this idea. I was just curious what > the reasoning was behind this change. It's similar to the way a lot of things work in Linux: you have to let operations run to completion so they can let go of resources. One day we'll be able to shoot down transfers in mid-flight, but I doubt that's going to happen in this cycle. So in general, the idea is: let any outstanding operations complete, but feed them errors. What else can we do? I don't see this as heavyweight at all. Policy stays in user space, and a lightweight error path lives in the kernel. Regards, Daniel