Go to file
jdolecek 026b142488 Change cache_lookup() as per discussion on tech-kern & ICB:
If the entry is found in name cache, cache_lookup() does all the
necessary locking now, simplifying the interface and making the
code easier to follow and maintain.

The code now also removes the entry from cache when it's either invalid
(vget() fails) or the vnode has been recycled while waiting for the lock.
In that case, unlock/relock of the directory vnode has been eliminated too.
Both changes could lead to sligh performace improvement in same cases.

Furthermore, obscure bug has been found and eliminated for ISDOTDOT in the
lockparent && ISLASTCN case: if the vget() succeded and the re-lock
of the directory vnode not, we returned the error with the '..' vnode still
locked.

For simplicity, cache_lookup() now returns 0 if the positive entry was found
in cache, -1 if not found and ENOENT or error returned by the locking
functions in any other case.

Many thanks to Bill Studenmund and especially Charles Hannum
for invaluable advices and code to get this right.

Tested by: jdolecek
Rewieved by: wrstuden, mycroft
1999-09-05 14:22:34 +00:00
bin It turns out that the code disabled in revision 1.30 *does* have an important 1999-08-31 08:58:47 +00:00
distrib Add iophy.[04] and tqphy.[04]. 1999-09-05 00:16:26 +00:00
etc add sanity check on rtadvd invocation (allowed on IPv6 routers only). 1999-09-03 13:40:15 +00:00
games Convert to something resembling KNF. 1999-08-21 10:40:03 +00:00
gnu Fix for a misoptimization, from the egcs/gcc mailing list 1999-09-04 11:18:40 +00:00
include Pull in <nl_types.h>, as suggested by XSH5. 1999-09-05 09:17:14 +00:00
lib Xref nl_langinfo(3). 1999-09-05 09:19:35 +00:00
libexec ftpd(8): Copy sin6_scope_id from control connection to active data 1999-09-01 05:03:41 +00:00
regress Oops; remember to clean the output file. 1999-08-30 17:06:33 +00:00
sbin Accept 'Y' for label disk as well as 'y' 1999-09-05 07:27:55 +00:00
share Update and improve examples a bit. 1999-09-05 02:17:24 +00:00
sys Change cache_lookup() as per discussion on tech-kern & ICB: 1999-09-05 14:22:34 +00:00
usr.bin Forgot to mention OpenBSD in history. 1999-09-04 20:53:05 +00:00
usr.sbin Add the doc subdir again. 1999-09-05 08:36:54 +00:00
Makefile Remove all of the domestic/crypto-us glue from this file. It is handled 1999-07-12 21:53:52 +00:00