I've thought about this before. Here are a few things to note:
1) You want all dirty buffers for the media currently in the drive to
be written out before requesting a switch, if possible.
2) You need some `fairness' algorithm to avoid starving anyone, but
not switching disks in and out too rapidly either.
3) You need a way to forcibly unmount a file system for which the
media is gone or broken.
4) Requests for disk changes should definitely go to the user
currently accessing the disk(s) in question. This can be done with
tprintf().
Note that items 1, 2, and 3 are also needed for proper jukebox
support.
I'd like to seen this done. Did I hear anyone volunteer? B-)