freebsd-skq/sys/nfsclient
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
..
bootp_subr.c When netbooting, as soon as we've figured out which interface we booted 2005-04-26 20:45:29 +00:00
krpc_subr.c MFp4: use the function to fix the packet header length instead of rolling 2005-03-16 08:13:08 +00:00
krpc.h
nfs_bio.c - Always return success from NFS strategy. nfs_doio(), in the 2005-11-21 19:23:46 +00:00
nfs_diskless.c Unexpand LLADDR(). 2005-11-29 09:51:47 +00:00
nfs_lock.c In nfs_dolock(), GC now under-used ioflg, rendered obsolete when we moved 2006-01-13 23:16:29 +00:00
nfs_lock.h For reasons unknown, the nfs locking code used a fifo to send requests to 2004-12-06 08:31:32 +00:00
nfs_nfsiod.c Normalize a significant number of kernel malloc type names: 2005-10-31 15:41:29 +00:00
nfs_node.c I ran into an nfs client panic a couple of times in a row over the 2006-01-17 17:29:03 +00:00
nfs_socket.c Improve upon rev 1.133 where NFS/TCP would not reconnect. 2005-12-12 23:18:05 +00:00
nfs_subs.c fix a problem with XID re-use when a server returns NFSERR_JUKEBOX. 2005-11-21 18:39:18 +00:00
nfs_vfsops.c Add marker vnodes to ensure that all vnodes associated with the mount point are 2006-01-09 20:42:19 +00:00
nfs_vnops.c Correct a typo 2005-12-28 10:03:48 +00:00
nfs.h Make nfs_timer() MPSAFE. With this change, the bottom half of the NFS 2005-07-19 21:27:25 +00:00
nfsargs.h Fix a serious deadlock with the NFS client. Given a large enough 2005-06-10 23:50:41 +00:00
nfsdiskless.h /* -> /*- for license, minor formatting changes 2005-01-07 01:45:51 +00:00
nfsm_subs.h fix a problem with XID re-use when a server returns NFSERR_JUKEBOX. 2005-11-21 18:39:18 +00:00
nfsmount.h Fix a serious deadlock with the NFS client. Given a large enough 2005-06-10 23:50:41 +00:00
nfsnode.h Remove the NFS client rslock. The rslock was used to serialize 2005-07-21 22:46:56 +00:00
nfsstats.h /* -> /*- for license, minor formatting changes 2005-01-07 01:45:51 +00:00
nlminfo.h - Fix leak of struct nlminfo on process exit. 2005-10-26 07:18:37 +00:00