NetBSD/sys
sommerfeld e303e2ee8b Fix kern/7906: race between unmount and getnewvnode()
mp->mnt_flags & MNT_MWAIT is replaced by mp->mnt_wcnt, and a new mount
flag MNT_GONE is created (reusing the same bit).

In insmntque(), add DIAGNOSTIC check to fail if the filesystem vnode
is being moved to is in the process of being unmounted.

getnewvnode() now protects the list of vnodes active on mp with
vfs_busy()/vfs_unbusy().

To avoid generating spurious errors during a doomed unmount, change
the "wait for unmount to finish" protocol between dounmount() and
vfs_busy().  In vfs_busy(), instead of only sleeping once, sleep until
either MNT_UNMOUNT is clear or MNT_GONE is set; also, maintain a count
of waiters in mp->mnt_wcnt so that dounmount() knows when it's safe to
free mp.

tested by running a "while :; do mount /d1; umount -f /d1; done" loop
against multiple find(1) processes.
1999-07-04 16:20:12 +00:00
..
adosfs Support ADOS file systems with more then 512 bytes/sector. 1999-06-02 22:04:30 +00:00
arch add "trace/t <pid>". 1999-07-04 06:45:26 +00:00
coda Typo/braino? 1999-04-29 22:20:42 +00:00
compat emulate (parts of) flock 1999-06-26 01:24:41 +00:00
conf align a bit better. 1999-07-02 19:59:09 +00:00
ddb Fix tyop in error message. 1999-06-26 16:58:12 +00:00
dev 'Dolphin' -> 'Dolphin Peripherals' where appropriate 1999-07-03 05:55:23 +00:00
filecorefs Looks like "filecorefs" is also affected by the problem described in 1999-04-07 21:55:58 +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
kern Fix kern/7906: race between unmount and getnewvnode() 1999-07-04 16:20:12 +00:00
lib bring back my friend the twiddle. 1999-06-22 22:44:16 +00:00
lkm Compile all VFS LKMs on all ports. 1999-05-18 23:06:02 +00:00
miscfs Fixes PR #1206, by setting va_mode and va_flags in the copied-up vnode's 1999-06-25 19:05:49 +00:00
msdosfs Silently ignore attributes modifications on directories. Fixes 1999-05-24 23:01:13 +00:00
net Add namespace protection, using XNS5.2 D2.0 as a reference (which effectively 1999-07-03 13:52:29 +00:00
netatalk
netccitt IPv6 kernel code, based on KAME/NetBSD 1.4, SNAP kit 19990628. 1999-07-01 08:12:45 +00:00
netinet RCS ID police. 1999-07-03 21:24:45 +00:00
netinet6 s/splnet/splsoftnet/ in IPv6/IPsec part. 1999-07-04 02:01:15 +00:00
netiso IPv6 kernel code, based on KAME/NetBSD 1.4, SNAP kit 19990628. 1999-07-01 08:12:45 +00:00
netkey s/splnet/splsoftnet/ in IPv6/IPsec part. 1999-07-04 02:01:15 +00:00
netnatm
netns add PR_LISTEN to protocols which support listen(2) 1999-07-01 05:53:04 +00:00
nfs Add fhopen, fhstat, fhstatfs syscalls. Also move getfh in from the nfs 1999-06-29 22:18:47 +00:00
ntfs Fix compilation problems on the Alpha. 1999-05-18 00:22:41 +00:00
stand
sys Fix kern/7906: race between unmount and getnewvnode() 1999-07-04 16:20:12 +00:00
ufs Nuke unneeded include file. 1999-07-03 18:40:32 +00:00
uvm Bring in additional uvmexp members from chs-ubc2, so that VM stats can 1999-07-02 23:20:58 +00:00
vm Fix a corner case locking error, which could lead to map corruption in 1999-07-01 20:07:05 +00:00
Makefile IPv6 kernel code, based on KAME/NetBSD 1.4, SNAP kit 19990628. 1999-07-01 08:12:45 +00:00