freebsd-nq/sys
Paul Saab d54d263a79 Serialize NFS vinvalbuf operations by acquiring/upgrading to the
vnode EXCLUSIVE lock. This prevents threads from adding pages to
the vnode while an invalidation is in progress, closing potential
races. In the bioread() path, callers acquire the SHARED vnode lock
- so while an invalidate was in progress, it was possible to fault
in new pages onto the vnode causing the invalidation to take a while
or fail. We saw these races at Yahoo! with very large files+heavy
concurrent access. Forcing an upgrade to EXCLUSIVE lock before doing
the invalidation closes all these races.

Submitted by:	Mohan Srinivasan mohans at yahoo-inc dot com
2004-12-06 18:52:28 +00:00
..
alpha Change gdb_cpu_setreg() to not take the value to which to set the 2004-12-01 06:40:35 +00:00
amd64 Replace (inlined) pmap_pte() calls with smaller, faster code where 2004-12-04 22:02:31 +00:00
arm Make sure to map the whole kernel into 1MB pages. Try to use the remaining 2004-12-05 22:48:04 +00:00
boot The 'start' command processes loader.conf variables, not loader.rc. 2004-12-06 05:30:31 +00:00
cam Correct another location where inquiry length as calculated from the 2004-11-18 07:24:29 +00:00
coda Back when VOP_* was introduced, we did not have new-style struct 2004-12-01 23:16:38 +00:00
compat Do not blindly pass linux filesystem specific mount data across. 2004-12-03 18:14:22 +00:00
conf Update the Tigon 1 and 2 driver to use the sf_buf API for implementing 2004-12-06 00:43:40 +00:00
contrib IPv6 packets can contain headers (like options) before the TCP/UDP/ICMP6 2004-12-05 12:15:43 +00:00
crypto Initiate deorbit burn sequence for 80386 support in FreeBSD: Remove 2004-11-16 20:42:32 +00:00
ddb When printing a stack trace for a thread, also print the pid and tid. 2004-11-23 23:11:47 +00:00
dev Update the Tigon 1 and 2 driver to use the sf_buf API for implementing 2004-12-06 00:43:40 +00:00
doc
fs Fix warning 2004-12-06 12:34:28 +00:00
gdb Change gdb_cpu_setreg() to not take the value to which to set the 2004-12-01 06:40:35 +00:00
geom o Don't limit GPT as a rank 2 provider. Allow it to be connected 2004-12-05 06:02:21 +00:00
gnu VFS_STATFS(mp, ...) is mostly called with &mp->mnt_stat, but a few cases 2004-12-05 22:41:02 +00:00
i4b Mark i4b IPR and SPPP drivers as NET_NEEDS_GIANT(), as they both 2004-10-12 09:25:52 +00:00
i386 Due to a significant addition of code, add my copyright to this file. Also 2004-12-06 18:19:32 +00:00
ia64 Change gdb_cpu_setreg() to not take the value to which to set the 2004-12-01 06:40:35 +00:00
isa Stop printing the VGA registers during verbose boot, in order to not 2004-11-03 09:07:44 +00:00
isofs/cd9660 VFS_STATFS(mp, ...) is mostly called with &mp->mnt_stat, but a few cases 2004-12-05 22:41:02 +00:00
kern Add more functions for handling mount arguments in VFS_MOUNT(): 2004-12-06 18:18:35 +00:00
libkern Use the RET macro. 2004-11-09 16:47:47 +00:00
modules kmod.mk knows how to create empty opt_*.h files so let it deal with the 2004-12-03 23:43:02 +00:00
net Implement the check I was talking about in the previous message already. 2004-11-30 22:38:37 +00:00
net80211
netatalk Correct a misspelling in a comment. 2004-12-05 13:28:52 +00:00
netatm Initialize struct pr_userreqs in new/sparse style and fill in common 2004-11-08 14:44:54 +00:00
netgraph Use ng_callout() instead of timeout(9). 2004-12-05 22:58:13 +00:00
netinet Assert the tcptw inpcb lock in tcp_timer_2msl_reset(), as fields in 2004-12-05 22:47:29 +00:00
netinet6 Reviewed by: SUZUKI Shinsuke <suz@kame.net> 2004-11-29 03:10:35 +00:00
netipsec Initialize struct pr_userreqs in new/sparse style and fill in common 2004-11-08 14:44:54 +00:00
netipx Initialize struct pr_userreqs in new/sparse style and fill in common 2004-11-08 14:44:54 +00:00
netkey support TCP-MD5(IPv4) in KAME-IPSEC, too. 2004-11-08 18:49:51 +00:00
netnatm Initialize struct pr_userreqs in new/sparse style and fill in common 2004-11-08 14:44:54 +00:00
netncp Add missing zero flag argument. 2004-10-12 08:22:08 +00:00
netsmb Don't use vn_todev(). 2004-11-10 07:16:59 +00:00
nfs Add non-blocking versions of nfsm_dissect() and friends, for use from 2004-12-06 17:33:52 +00:00
nfs4client VFS_STATFS(mp, ...) is mostly called with &mp->mnt_stat, but a few cases 2004-12-05 22:41:02 +00:00
nfsclient Serialize NFS vinvalbuf operations by acquiring/upgrading to the 2004-12-06 18:52:28 +00:00
nfsserver Correct a bug in nfsrv_create() where a call to nfsrv_access() might 2004-11-11 21:30:52 +00:00
opencrypto Push Giant down through ioctl. 2004-11-17 09:09:55 +00:00
pc98 Don't include sys/user.h merely for its side-effect of recursively 2004-11-27 06:51:39 +00:00
pccard Move PNP IDs back into oldcard files 2004-08-13 06:57:31 +00:00
pci Update the Tigon 1 and 2 driver to use the sf_buf API for implementing 2004-12-06 00:43:40 +00:00
posix4 Back when VOP_* was introduced, we did not have new-style struct 2004-12-01 23:16:38 +00:00
powerpc Create a new definition, PSL_KERNSET, which is used for setting the 2004-11-30 09:04:41 +00:00
rpc Prefer C99's __func__ over GCC's __FUNCTION__. 2004-09-23 18:25:46 +00:00
security Implement MAC entry points relating to System V IPC, calling into the 2004-11-17 13:14:24 +00:00
sparc64 Change gdb_cpu_setreg() to not take the value to which to set the 2004-12-01 06:40:35 +00:00
sys Add more functions for handling mount arguments in VFS_MOUNT(): 2004-12-06 18:18:35 +00:00
tools Back when VOP_* was introduced, we did not have new-style struct 2004-12-01 23:16:38 +00:00
ufs VFS_STATFS(mp, ...) is mostly called with &mp->mnt_stat, but a few cases 2004-12-05 22:41:02 +00:00
vm Correct a sanity check in vnode_pager_generic_putpages(). The cast used 2004-12-05 21:48:11 +00:00
Makefile Add a NO_BOOT knob to prevent building the boot blocks and loader. 2004-08-19 09:54:28 +00:00