1
0
mirror of https://git.FreeBSD.org/src.git synced 2024-12-05 09:14:03 +00:00
freebsd/sys
Konstantin Belousov 724ce55b5b While fixing the looping of a thread while devfs vnode is reclaimed,
r179247 introduced a possibility of devfs_allocv() returning spurious
ENOENT. If the vnode is selected by vnlru daemon for reclamation, then
devfs_allocv() can get ENOENT from vget() due to devfs_close() dropping
vnode lock around the call to cdevsw d_close method.

Use LK_RETRY in the vget() call, and do some part of the devfs_reclaim()
work in devfs_allocv(), clearing vp->v_data and de->de_vnode. Retry the
allocation of the vnode, now with de->de_vnode == NULL.

The check vp->v_data == NULL at the start of devfs_close() cannot be
affected by the change, since vnode lock must be held while VI_DOOMED
is set, and only dropped after the check.

Reported and tested by:	Kohji Okuno <okuno.kohji jp panasonic com>
Reviewed by:	attilio
MFC after:	3 weeks
2011-07-13 21:07:41 +00:00
..
amd64 Correct cpu_monitor() and cpu_mwait() for amd64. These instructions take 2011-07-05 18:42:10 +00:00
arm Add some checks to ensure that Capsicum is behaving correctly, and add some 2011-06-30 10:56:02 +00:00
boot Since r219452 the alignment of __dmadat has changed, revealing that fsread() 2011-07-11 20:43:59 +00:00
bsm
cam cam/scsi/scsi_cd.c: 2011-06-26 01:32:46 +00:00
cddl MFC 2011-06-28 14:40:17 +00:00
compat Return empty cmdline/environ string for processes with kernel address 2011-06-17 07:30:56 +00:00
conf Support of Ralink Ethernet MAC, used in RT3050F/RT3052F and I belive in other Ralink SoCs. 2011-07-11 08:23:59 +00:00
contrib Update packet filter (pf) code to OpenBSD 4.5. 2011-06-28 11:57:25 +00:00
crypto
ddb Fix making kernel dumps from the debugger by creating a command 2011-06-07 01:28:12 +00:00
dev - Expand the scope of the lock in the interrupt routine to close races with 2011-07-13 18:52:11 +00:00
fs While fixing the looping of a thread while devfs vnode is reclaimed, 2011-07-13 21:07:41 +00:00
gdb
geom Remove include of sys/sbuf.h from geom/geom.h. 2011-07-11 10:02:27 +00:00
gnu
i386 Update tags build script 2011-07-10 00:53:04 +00:00
ia64 Implement basic support for memory attributes. At this time we only 2011-07-08 16:30:54 +00:00
isa
kern Implement an RFTSIGZMB flag to rfork(2) to specify a signal that is 2011-07-12 20:37:18 +00:00
kgssapi Fix the kgssapi so that it can be loaded as a module. Currently 2011-06-19 22:08:55 +00:00
libkern
mips MFC 2011-07-04 11:13:00 +00:00
modules Add new USB 3G driver. 2011-07-08 10:58:56 +00:00
net Permit ARP to proceed for IPv4 host routes for which the gateway is the 2011-07-08 09:38:33 +00:00
net80211 Fix memset sizeofs 2011-07-07 15:41:40 +00:00
netatalk
netgraph Add missing unlocks. 2011-07-06 09:43:25 +00:00
netinet Don't check for SOCK_DGRAM anymore. Also remove multicast 2011-07-12 20:14:03 +00:00
netinet6 The socket API only specifies SCTP for SOCK_SEQPACKET and 2011-07-12 19:29:29 +00:00
netipsec Update packet filter (pf) code to OpenBSD 4.5. 2011-06-28 11:57:25 +00:00
netipx
netnatm
netncp
netsmb
nfs Set proper root device name when legacy NFS client is compiled into kernel. 2011-06-29 15:17:29 +00:00
nfsclient Fix the kgssapi so that it can be loaded as a module. Currently 2011-06-19 22:08:55 +00:00
nfsserver Fix the kgssapi so that it can be loaded as a module. Currently 2011-06-19 22:08:55 +00:00
nlm
ofed MFC 2011-05-27 16:09:10 +00:00
opencrypto
pc98 - Reduce diffs against i386. 2011-06-13 13:24:33 +00:00
pci
powerpc Follow Linux by unconditionally stripping the RX vlan tag from incoming 2011-07-05 15:00:55 +00:00
rpc Fix the kgssapi so that it can be loaded as a module. Currently 2011-06-19 22:08:55 +00:00
security
sparc64 Remove NULL assignments which are redundant for static timecounters. 2011-07-12 18:10:56 +00:00
sys Implement an RFTSIGZMB flag to rfork(2) to specify a signal that is 2011-07-12 20:37:18 +00:00
teken Fix various whitespace inconsistencies in sys/teken. 2011-06-26 18:25:10 +00:00
tools
ufs When first creating snapshots, we may free some blocks within it. 2011-07-10 05:34:49 +00:00
vm Extract the code to translate VM error into errno, into an exported 2011-07-10 20:49:13 +00:00
x86 Move {amd64,i386}/pci/pci_bus.c and {amd64,i386}/include/pci_cfgreg.h to 2011-06-22 21:04:13 +00:00
xdr
xen Monitor and emit events for XenStore changes to XenBus trees 2011-06-11 04:59:01 +00:00
Makefile Include sys/xen in cscope tag file generation. 2011-06-10 20:51:41 +00:00