Christian S.J. Peron 2ed4894a26 Restore fd optimization with a few minor tweaks, to quote tegge:
"fdinit() fails to initialize newfdp->fd_fd.fd_lastfile to -1.  This breaks
fdcopy() which will incorrectly set newfdp->fd_freefile to 1 if no files are
open and the last file descriptor marked as unused for fdp was 0.  This later
causes descriptor 0 to be unavailable in newfdp when the optimization is
enabled.

When the last file descriptor previously marked as used is nonzero and marked
as unused, fdunused() incorrectly sets fdp->fd_lastfile to fd - 1 due to
fd_last_used() returning (size - 1).  This hides the problem that breaks the
optimization."

This allows us to keep the optimization, while un-breaking it.

This is a RELENG_6 candidate.

PR:		kern/87208
MFC after:	1 week
Submitted by:	tegge
2006-03-20 00:13:47 +00:00
..
2006-03-01 06:49:38 +00:00
2006-03-08 20:21:54 +00:00
2006-01-27 23:06:08 +00:00
2005-12-23 21:32:40 +00:00
2006-03-03 22:36:52 +00:00
2005-12-04 02:12:43 +00:00
2005-12-28 17:13:31 +00:00
2006-02-04 06:36:39 +00:00
2005-11-17 08:56:21 +00:00
2006-03-01 06:49:38 +00:00