In revision 1.94 of kern_descrip.c, in the dup2() syscall a goto
retry loop was added so that if we did a fdalloc() we always retested
everything.  Since fd_nfiles can't shrink and new and old can't
change, I don't see why the loop is necessary.  Neither dup() or
the F_DUPFD fcntl() were modified in this way either.  Also,
calling fdalloc() in this case is somewhat bogus, because fdalloc()
is going to try and reserve an open slot and update variables such
as fd_lastfile, etc. appropriately.  Perhaps we should have an
fdextend() function that both dup2() and fdalloc() call?  Also,
in do_dup() you have commented out the call to munmapfd() on an
open file with UF_MAPPED and never turned it back on.  Was that
intentional or just an accidental oversight?


John Baldwin <[EMAIL PROTECTED]>  <><
"Power Users Use the Power to Serve!"  -

To Unsubscribe: send mail to [EMAIL PROTECTED]
with "unsubscribe freebsd-current" in the body of the message

Reply via email to