I've rewritten the revoke() implementation. It is now able to revoke any open file, not just devices. The root directory, current directory, and jail root directory for a process cannot be revoked. The patch needs testing:
fetch http://apollo.backplane.com/DFlyMisc/revoke02.patch The original revoke() was a horrible hack that basically blew away the underlying vnode without giving the VFS much say in the matter, and required a lot of code hacks to deal with the resulting mess. The new revoke() actually replaces the open descriptors with a dummy descriptor and close()s the revoked descriptors properly. For testing purposes, opening up ssh, screen, and 'script' typescript connections to/on the target machine helps exercise the controlling terminal logic. -Matt Matthew Dillon <dil...@backplane.com>