freebsd-nq/sys
Don Lewis 3a140162b4 Fix up locking problems in fifo_open() and fifo_close():
Sleep on the vnode interlock while waiting for another
	caller to increment fi_readers or fi_writers.  Hold the
	vnode interlock while incrementing fi_readers or fi_writers
	to prevent a wakeup from being missed.

	Only access fi_readers and fi_writers while holding the vnode
	lock.  Previously fifo_close() decremented their values without
	holding a lock.

	Move resource deallocation from fifo_close() to fifo_inactive(),
	which allows the VOP_CLOSE() call in the error return path in
	fifo_open() to be removed.  Fifo_open() was calling VOP_CLOSE()
	with the vnode lock held, in violation the current vnode locking
	API.  Also the way fifo_close() used vrefcnt() to decide whether
	to deallocate resources was bogus according to comments in the
	vrefcnt() implementation.

Reviewed by:	bde
2003-06-01 06:24:32 +00:00
..
alpha Rename BUS_DMAMEM_NOSYNC to BUS_DMA_COHERENT. 2003-05-30 20:40:33 +00:00
amd64 MFi386: rev 1.56: remove break after return 2003-05-31 22:02:11 +00:00
arm sys/sys/limits.h: 2003-05-19 20:29:07 +00:00
boot Man, I'm not on the ball. 4th does not need to escape '\' chars. This 2003-05-31 16:07:00 +00:00
cam Add /* FALLTHROUGH */ 2003-05-31 20:46:21 +00:00
coda - Move p->p_sigmask to td->td_sigmask. Signal masks will be per thread with 2003-03-31 22:49:17 +00:00
compat Put definition of struct svr4_sockcache_entry in a .h file rather than 2003-05-31 20:33:18 +00:00
conf If DESTDIR was specified as a makeoption in the kernelconfig file 2003-05-31 21:16:12 +00:00
contrib This commit was generated by cvs2svn to compensate for changes in r115367, 2003-05-28 17:32:31 +00:00
crypto Assembly files put thru the C preprocessor need to have C style comments. 2003-04-21 16:30:12 +00:00
ddb Add /* FALLTHROUGH */ 2003-05-31 20:43:47 +00:00
dev Use SC_NO_CUTPASTE to protect cutpaste variables correctly, fixing the 2003-06-01 04:42:14 +00:00
fs Fix up locking problems in fifo_open() and fifo_close(): 2003-06-01 06:24:32 +00:00
geom Remove unused variable. 2003-05-31 19:41:33 +00:00
gnu Remove extra ';' 2003-05-31 18:52:38 +00:00
i4b Fix off-by-one errors in range checks of state machine states & events. 2003-05-31 18:54:02 +00:00
i386 Remove unused variable(s). 2003-05-31 20:29:34 +00:00
ia64 Now that we have the signal trampolines in the gateway page and the 2003-05-31 21:21:35 +00:00
isa wrap macro in do {...} while(0) 2003-05-31 21:11:51 +00:00
isofs/cd9660 emove unused variable(s). 2003-05-31 20:19:13 +00:00
kern Remove the ia64 hackery in threadinit() that was needed to work around 2003-06-01 05:57:58 +00:00
libkern Deprecate machine/limits.h in favor of new sys/limits.h. 2003-04-29 13:36:06 +00:00
modules Add GEOM module compilation shims. 2003-05-31 18:36:41 +00:00
net Wrap macro in do {...} while(0); 2003-05-31 20:07:16 +00:00
netatalk - Use if_broadcastaddr from struct ifnet rather than relying on 2003-03-21 17:53:16 +00:00
netatm Use __FBSDID rather than rcsid[]. 2003-04-03 21:36:33 +00:00
netgraph fix a cut-n-paste error. 2003-05-15 18:51:28 +00:00
netinet Add /* FALLTHROUGH */ 2003-05-31 19:07:22 +00:00
netinet6 Add definitions for IN6ADDR_LINKLOCAL_ALLMDNS_INIT and INADDR_ALLMDNS_GROUP. 2003-04-29 22:03:46 +00:00
netipsec Introduce an M_ASSERTPKTHDR() macro which performs the very common task 2003-04-08 14:25:47 +00:00
netipx Remove unimplemented IP-in-IPX encapsulation support (options IPTUNNEL). 2003-03-08 06:58:22 +00:00
netkey Introduce an M_ASSERTPKTHDR() macro which performs the very common task 2003-04-08 14:25:47 +00:00
netnatm Introduce an M_ASSERTPKTHDR() macro which performs the very common task 2003-04-08 14:25:47 +00:00
netncp - Merge struct procsig with struct sigacts. 2003-05-13 20:36:02 +00:00
netsmb - Merge struct procsig with struct sigacts. 2003-05-13 20:36:02 +00:00
nfs
nfsclient Remove unsed variables. 2003-05-31 20:05:25 +00:00
nfsserver Add /* FALLTHROUGH */ 2003-05-31 18:20:26 +00:00
opencrypto Gigacommit to improve device-driver source compatibility between 2003-03-03 12:15:54 +00:00
pc98 MFi386: revision 1.199 2003-06-01 04:51:07 +00:00
pccard 1. Allow drivers to query CIS strings from OLDCARD. 2003-04-23 23:39:21 +00:00
pci Remove unused variable. 2003-05-31 20:04:19 +00:00
posix4
powerpc Bring back bus_dmasync_op_t. It is now a typedef to an int, though the 2003-05-27 04:59:59 +00:00
rpc
security Remove double return() 2003-05-31 19:55:32 +00:00
sparc64 Fix interrupt assignment for non-builtin PCI devices on e450s. 2003-05-30 20:48:05 +00:00
sys Add an XXX comment with a TODO item for next time we run a revision 2003-05-31 21:10:01 +00:00
tools MFp4: 2003-03-28 06:43:50 +00:00
ufs Return EOPNOTSUPP for attempted EA operations on VCHR vnodes in UFS2; 2003-06-01 02:42:18 +00:00
vm Prepend _ to internal union members to avoid ambiguity. 2003-05-31 19:52:15 +00:00
Makefile Exclude sys/boot for amd64. There are still toolchain issues to deal 2003-05-08 06:35:39 +00:00