freebsd-nq/sys
Alfred Perlstein 92e73f5711 I ran into an nfs client panic a couple of times in a row over the
last few days.  I tracked it down to the fact that nfs_reclaim()
is setting vp->v_data to NULL _before_ calling vnode_destroy_object().
After silence from the mailing list I checked further and discovered
that ufs_reclaim() is unique among FreeBSD filesystems for calling
vnode_destroy_object() early, long before tossing v_data or much
of anything else, for that matter.  The rest, including NFS, appear
to be identical, as if they were just clones of one original routine.

The enclosed patch fixes all file systems in essentially the same
way, by moving the call to vnode_destroy_object() to early in the
routine (before the call to vfs_hash_remove(), if any).  I have
only tested NFS, but I've now run for over eighteen hours with the
patch where I wouldn't get past four or five without it.

Submitted by: Frank Mayhar
Requested by: Mohan Srinivasan
MFC After: 1 week
2006-01-17 17:29:03 +00:00
..
alpha Move the old BSD4.3 tty compatibility from (!BURN_BRIDGES && COMPAT_43) 2006-01-10 09:19:10 +00:00
amd64 Free the newtag if we exit with a failure from alloc_bounce_zone(). 2006-01-14 17:22:47 +00:00
arm By popular demand, move __HAVE_ACPI and __PCI_REROUTE_INTERRUPT into 2006-01-09 06:05:57 +00:00
boot In moduledir_readhints() cast the value returned by sizeof() to ssize_t 2006-01-12 13:18:49 +00:00
bsm
cam Incorporate the O_NONBLOCK open semantics of Linux and Solaris. This allows 2006-01-14 14:32:41 +00:00
coda o Fix typo in the define: s/MRAK_INT_GEN/MARK_INT_GEN/. The typo 2006-01-09 18:07:06 +00:00
compat Cast tv_sec to intmax_t and print with %jd in some ifdef'ed code. 2005-12-28 07:08:54 +00:00
conf Add a new file (kern/subr_lock.c) for holding code related to struct 2006-01-17 16:55:17 +00:00
contrib Move m_adj after checking that m_dup succeeded. 2006-01-14 22:19:17 +00:00
crypto
ddb Fix -Wundef. 2005-12-04 02:12:43 +00:00
dev Fix a memory leak I introduced with the hostb/vgapci stuff. 2006-01-17 17:02:45 +00:00
doc
fs I ran into an nfs client panic a couple of times in a row over the 2006-01-17 17:29:03 +00:00
gdb
geom Move $FreeBSD$ from comment to __FBSDID(). 2006-01-17 11:48:16 +00:00
gnu Add marker vnodes to ensure that all vnodes associated with the mount point are 2006-01-09 20:42:19 +00:00
i4b Fix -Wundef warnings found when compiling i386 LINT, GENERIC and 2005-12-05 11:58:35 +00:00
i386 Free the newtag if we exit with a failure from alloc_bounce_zone(). 2006-01-14 17:22:47 +00:00
ia64 Move the old BSD4.3 tty compatibility from (!BURN_BRIDGES && COMPAT_43) 2006-01-10 09:19:10 +00:00
isa Tweak how the MD code calls the fooclock() methods some. Instead of 2005-12-22 22:16:09 +00:00
isofs/cd9660 I ran into an nfs client panic a couple of times in a row over the 2006-01-17 17:29:03 +00:00
kern Bah. Fix 'show lock' to actually be compiled in. I had just fixed this in 2006-01-17 16:58:32 +00:00
libkern Ignore spurious '\0' first character read on a serial console. 2006-01-14 20:45:02 +00:00
modules Fix standalone module build. 2006-01-16 17:03:06 +00:00
net Add code that clears certain capabilities from the member interface, these are 2006-01-14 03:51:31 +00:00
net80211 add flag to tag frames w/ a known bad FCS 2006-01-09 17:04:56 +00:00
netatalk - Store pointer to the link-level address right in "struct ifnet" 2005-11-11 16:04:59 +00:00
netatm Try to unbreak the tinderbox: Cast a time_t argument to long before printing 2005-12-27 12:33:18 +00:00
netgraph Initialize variable. 2006-01-14 21:49:31 +00:00
netinet Modify the IP fragment reassembly code so that it uses a new UMA zone, 2006-01-15 18:58:21 +00:00
netinet6 When storing the results of malloc() in a pointer to a pointer, check 2006-01-14 00:09:41 +00:00
netipsec Fix -Wundef warnings found when compiling i386 LINT, GENERIC and 2005-12-05 11:58:35 +00:00
netipx In spx_attach() and spx_detach(), there is no need to check whether the 2006-01-14 00:05:44 +00:00
netkey Fix -Wundef from compiling the amd64 LINT. 2005-12-04 10:06:06 +00:00
netnatm Use sparse initializers for "struct domain" and "struct protosw", 2005-11-09 13:29:16 +00:00
netncp In ncp_sysctl_connstat(), the SLIST_FOREACH() logic to check 'error' 2006-01-14 11:40:32 +00:00
netsmb Although we check the return value of copyin(9) while determaining how 2006-01-16 17:03:21 +00:00
nfs
nfs4client Add marker vnodes to ensure that all vnodes associated with the mount point are 2006-01-09 20:42:19 +00:00
nfsclient I ran into an nfs client panic a couple of times in a row over the 2006-01-17 17:29:03 +00:00
nfsserver Normalize a significant number of kernel malloc type names: 2005-10-31 15:41:29 +00:00
opencrypto
pc98 Move the old BSD4.3 tty compatibility from (!BURN_BRIDGES && COMPAT_43) 2006-01-10 09:19:10 +00:00
pccard I don't believe these are used at all, and can be safely removed 2006-01-15 06:49:28 +00:00
pci Fix a memory leak I introduced with the hostb/vgapci stuff. 2006-01-17 17:02:45 +00:00
posix4 mqueue.h has been superceded by sys/mqueue.h thanks to David Xu's work. 2005-11-28 02:58:30 +00:00
powerpc Move the old BSD4.3 tty compatibility from (!BURN_BRIDGES && COMPAT_43) 2006-01-10 09:19:10 +00:00
rpc Fix -Wundef. 2005-12-04 02:12:43 +00:00
security Fix potential overrun of static stack allocated array which stores 2006-01-15 01:02:20 +00:00
sparc64 Correct typos (s/OFERFLOW/OVERFLOW/). 2006-01-16 01:35:25 +00:00
sys Add a new file (kern/subr_lock.c) for holding code related to struct 2006-01-17 16:55:17 +00:00
tools Eradicate caddr_t from the VFS API. 2005-12-14 00:49:52 +00:00
ufs Add marker vnodes to ensure that all vnodes associated with the mount point are 2006-01-09 20:42:19 +00:00
vm Reduce the scope of one #ifdef to avoid duplicating a SYSCTL_INT() macro 2006-01-06 18:03:45 +00:00
Makefile add nfsclient/, nfs4client/, and rpc/ directories to the 2006-01-10 20:58:27 +00:00