So you're theory here is that that all code that may be necessary to
start I/O but could take a while should be done out of band. That's a
reasonable response. The only problem is that you sometimes cannot
easily tell if things like timeout driven recovery/restart can be used.
The basic
It isn't the cannot sleep from geometry calls that is twitting me a
bit, it's the I cannot tell at my call depth in the stack whether some
dork above can't tolerate a sleep[1]. If I've missed some usage point
with the SMP stuff that I *can* tell this with ease, enlighten me.
-matt
[1]: by