* Jeff Roberson <jroberson_at_chesapeake.net> wrote: > This diff also includes another patch that I intend to commit to current > which significantly improved write performance for mysql by removing all > use of Giant in fcntl(). Some time ago I filed a PR that F_DUPFD performs a lot of useless locking. It first performs lookups of the descriptor to make sure it exists, but afterwards it just calls do_dup(), which does the lookups again. The patch shaves off a pair of FILEDESC_XLOCK/FILEDESC_XUNLOCK and PROC_LOCK/PROC_UNLOCK calls. http://www.freebsd.org/cgi/query-pr.cgi?pr=kern/105346 http://g-rave.nl/junk/freebsd-kern_descrip.diff The only reason why F_DUPFD performs these checks, is because it could return EINVAL in some cases, while dup() and dup2() only return EMFILE and EBADFD. This patch makes do_dup() return EINVAL when the offset is invalid, so that's why the dup()/dup2() syscalls are changed as well. Yours, -- Ed Schouten <ed_at_fxq.nl> WWW: http://g-rave.nl/
This archive was generated by hypermail 2.4.0 : Wed May 19 2021 - 11:39:13 UTC