cvs commit: src/sys/kern kern_descrip.c

Christian S.J. Peron csjp at FreeBSD.org
Mon Mar 20 00:13:48 UTC 2006


csjp        2006-03-20 00:13:47 UTC

  FreeBSD src repository

  Modified files:
    sys/kern             kern_descrip.c 
  Log:
  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
  
  Revision  Changes    Path
  1.293     +5 -2      src/sys/kern/kern_descrip.c


More information about the cvs-src mailing list