On Sat, Feb 16, 2002 at 01:02:09AM -0800, Terry Lambert wrote: > Pretty clearly, if it happens, and the process is truly > gone, then there is a resource track cleanup that's > missing (perhaps it's a reference that results from the > Linux mmap resource track cleanup not releasing it?).
It was indeed a linux_compat specific resource cleanup issue. I managed to create a simple linux program that had the same problem. From there on it was easy... The problem was created by Alfred's locking commit of Jan 13. (No hard feelings, it helped me to understand the code alot better! ;) ) Can someone please commit the attached (trivial) patch? Mark ps. there might be more pieces of code like this maybe. -- Mark Santcroos RIPE Network Coordination Centre http://www.ripe.net/home/mark/ New Projects Group/TTM
--- linux_ioctl.c.orig Wed Feb 20 12:34:46 2002 +++ linux_ioctl.c Wed Feb 20 12:35:06 2002 @@ -2313,9 +2313,10 @@ TAILQ_FOREACH(he, &handlers, list) { if (cmd >= he->low && cmd <= he->high) { error = (*he->func)(td, args); - if (error != ENOIOCTL) + if (error != ENOIOCTL) { fdrop(fp, td); return (error); + } } } fdrop(fp, td);