NetBSD/sys
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
..
adosfs Revoke revoke(2) bug. 1999-08-19 03:42:23 +00:00
arch Remove a few unnecessary header files. 1999-09-05 11:34:29 +00:00
coda Add support for fcntl(2) to generate VOP_FCNTL calls. Any fcntl 1999-08-03 20:19:16 +00:00
compat Update for new msgctl()/semctl()/shmctl() calls. 1999-08-25 04:52:06 +00:00
conf This is the long-awaited "new Tulip driver", a complete, from-scratch 1999-09-01 00:32:41 +00:00
ddb XXX LOCKING XXX of allproc; DDB runs with interrupts blocked, and MD 1999-07-22 21:11:26 +00:00
dev Garbage collect more unused stuff. 1999-09-05 03:05:55 +00:00
filecorefs Fix compiler warning. 1999-08-18 22:01:53 +00:00
gdbscripts
ipkdb Rework layer 2 protocol input routines. Instead of calling e.g. ether_input() 1999-05-18 23:52:51 +00:00
isofs Pull in changes which parallel rev 1.22 -> 1.25 of ufs_lookup(). 1999-08-04 18:40:47 +00:00
kern Change cache_lookup() as per discussion on tech-kern & ICB: 1999-09-05 14:22:34 +00:00
lib Fix read retry error case. Closes kern/8300. 1999-09-01 02:32:26 +00:00
lkm properly end the comment with NetBSD RCS id 1999-09-05 10:57:01 +00:00
miscfs Make /proc/self a symlink to /proc/curproc. I've observed Linux programs 1999-09-02 23:33:45 +00:00
msdosfs Revoke revoke(2) bug. 1999-08-19 03:42:23 +00:00
net Move the mtu initialization to arc_storelladdr, so that it will be upped 1999-08-29 20:38:36 +00:00
netatalk Added per-addr input/output statistics. Currently just support netatalk 1999-03-27 01:24:49 +00:00
netccitt IPv6 kernel code, based on KAME/NetBSD 1.4, SNAP kit 19990628. 1999-07-01 08:12:45 +00:00
netinet fix tcp mss consideration on ipsec operation. 1999-08-27 02:56:14 +00:00
netinet6 - invert u bit on interface id for pseudo interfaces, as suggested in RFC2373. 1999-09-05 01:57:10 +00:00
netiso Back out previous. I was getting bitten by a bug in make(1), which is 1999-07-12 18:15:09 +00:00
netkey sync with recent KAME. 1999-08-24 00:46:12 +00:00
netnatm Domains are associated with protocol families, not address families. 1999-01-14 01:16:55 +00:00
netns add PR_LISTEN to protocols which support listen(2) 1999-07-01 05:53:04 +00:00
nfs Wait some seconds after the interface is brought up before packets 1999-09-03 20:06:46 +00:00
ntfs argh, forgot to add the implementation of ntfs_u28() 1999-09-05 12:30:56 +00:00
stand vax -> __vax__ (and mips to __mips__ in ultrix_misc.c) 1998-10-20 01:46:27 +00:00
sys Add a new flag, used by vn_open() which prevent symlinks from being followed 1999-08-31 12:30:35 +00:00
ufs Make changes that will allow an LFS filesystem to be used as the root 1999-09-03 22:48:51 +00:00
uvm When handling the MADV_FREE case, if the amap or aobj has more than 1999-08-21 02:19:05 +00:00
vm Garbage collect thread_sleep()/thread_wakeup() left over from the old 1999-07-22 22:58:38 +00:00
Makefile IPv6 kernel code, based on KAME/NetBSD 1.4, SNAP kit 19990628. 1999-07-01 08:12:45 +00:00