freebsd-dev/sys/nfs
Peter Wemm 9733f8ee44 Hold a reference to the vnode during the sillyrename cleanup. If we block
in nfs_vinvalbuf() or the nfs_removeit(), we can have the nfsnode reallocated
from underneath us (eg: replaced by a ufs 'struct inode') which can cause
disk corruption ('freeing free block' when di_db[5] gets trashed).
This is not a cheap fix, but it'll do until the nfsnodes get reference
counting and/or locking.

Apparently NetBSD have a similar fix (apparently from BSDI).

I wish all PR's had this much useful detail. :-)

PR: 6611
Submitted by: Stephen Clawson <sclawson@marker.cs.utah.edu>
1998-05-13 06:10:13 +00:00
..
bootp_subr.c Eradicate the variable "time" from the kernel, using various measures. 1998-03-30 09:56:58 +00:00
krpc_subr.c Moved some #includes from <sys/param.h> nearer to where they are actually 1998-03-28 10:33:27 +00:00
krpc.h Forward declare more structs that are used in prototypes here - don't 1998-02-01 20:34:07 +00:00
nfs_bio.c Don't allow the readdirplus routine to be used in NFS V2. 1998-03-28 16:05:05 +00:00
nfs_common.c Use random() to find our initial xid. 1998-04-06 11:41:07 +00:00
nfs_common.h Eradicate the variable "time" from the kernel, using various measures. 1998-03-30 09:56:58 +00:00
nfs_node.c Hold a reference to the vnode during the sillyrename cleanup. If we block 1998-05-13 06:10:13 +00:00
nfs_nqlease.c Eradicate the variable "time" from the kernel, using various measures. 1998-03-30 09:56:58 +00:00
nfs_serv.c In the words of the submitter: 1998-05-07 04:58:58 +00:00
nfs_socket.c Eradicate the variable "time" from the kernel, using various measures. 1998-03-30 09:56:58 +00:00
nfs_srvcache.c Staticize. 1998-02-09 06:11:36 +00:00
nfs_subs.c Use random() to find our initial xid. 1998-04-06 11:41:07 +00:00
nfs_syscalls.c Eradicate the variable "time" from the kernel, using various measures. 1998-03-30 09:56:58 +00:00
nfs_vfsops.c As described by the submitter: 1998-05-06 05:29:41 +00:00
nfs_vnops.c Move the *vpp initialization earlier so that it's set in all error cases. 1998-05-13 05:47:09 +00:00
nfs.h Eradicate the variable "time" from the kernel, using various measures. 1998-03-30 09:56:58 +00:00
nfsdiskless.h Removed more vestiges of config-time swap configuration. 1997-09-07 12:56:46 +00:00
nfsm_subs.h Eradicate the variable "time" from the kernel, using various measures. 1998-03-30 09:56:58 +00:00
nfsmount.h Fix all areas of the system (or at least all those in LINT) to avoid storing 1997-08-16 19:16:27 +00:00
nfsnode.h Trivial filesystem getpages/putpages implementations, set the second. 1998-03-06 09:46:52 +00:00
nfsproto.h Back out part 1 of the MCFH that changed $Id$ to $FreeBSD$. We are not 1997-02-22 09:48:43 +00:00
nfsrtt.h Various fixes from NetBSD: 1997-06-03 17:22:47 +00:00
nfsrvcache.h Added #include of <sys/queue.h> so that this file is more "self"-sufficent. 1998-02-03 22:19:35 +00:00
nfsv2.h Back out part 1 of the MCFH that changed $Id$ to $FreeBSD$. We are not 1997-02-22 09:48:43 +00:00
nqnfs.h Eradicate the variable "time" from the kernel, using various measures. 1998-03-30 09:56:58 +00:00
rpcv2.h Bring in some kernel bootp support. This removes the need for netboot 1997-05-11 18:05:39 +00:00
xdr_subs.h Back out part 1 of the MCFH that changed $Id$ to $FreeBSD$. We are not 1997-02-22 09:48:43 +00:00