freebsd-dev/sys
Matthew Dillon 3ebeaf5984 This fixes a large number of bugs in our NFS client side code. A recent
commit by Kirk also fixed a softupdates bug that could easily be triggered
by server side NFS.

	* An edge case with shared R+W mmap()'s and truncate whereby
	  the system would inappropriately clear the dirty bits on
	  still-dirty data.  (applicable to all filesystems)

	  THIS FIX TEMPORARILY DISABLED PENDING FURTHER TESTING.
	  see vm/vm_page.c line 1641

	* The straddle case for VM pages and buffer cache buffers when
	  truncating.  (applicable to NFS client side)

	* Possible SMP database corruption due to vm_pager_unmap_page()
	  not clearing the TLB for the other cpu's.  (applicable to NFS
	  client side but could effect all filesystems).  Note: not
	  considered serious since the corruption occurs beyond the file
	  EOF.

	* When flusing a dirty buffer due to B_CACHE getting cleared,
	  we were accidently setting B_CACHE again (that is, bwrite() sets
	  B_CACHE), when we really want it to stay clear after the write
	  is complete.  This resulted in a corrupt buffer.  (applicable
	  to all filesystems but probably only triggered by NFS)

	* We have to call vtruncbuf() when ftruncate()ing to remove
	  any buffer cache buffers.  This is still tentitive, I may
	  be able to remove it due to the second bug fix.  (applicable
	  to NFS client side)

	* vnode_pager_setsize() race against nfs_vinvalbuf()... we have
	  to set n_size before calling nfs_vinvalbuf or the NFS code
	  may recursively vnode_pager_setsize() to the original value
	  before the truncate.  This is what was causing the user mmap
	  bus faults in the nfs tester program.  (applicable to NFS
	  client side)

	* Fix to softupdates (see ufs/ffs/ffs_inode.c 1.73, commit made
	  by Kirk).

Testing program written by: Avadis Tevanian, Jr.
Testing program supplied by: jkh / Apple (see Dec2001 posting to freebsd-hackers with Subject 'NFS: How to make FreeBS fall on its face in one easy step')
MFC after:	1 week
2001-12-14 01:16:57 +00:00
..
alpha Overhaul the per-CPU support a bit: 2001-12-11 23:33:44 +00:00
amd64 Axe an unneeded PCPU_SET(spinlocks, NULL) that I missed earlier. 2001-12-12 08:07:41 +00:00
arm We need machine/{signal,ucontext}.h to build a cross GCC compiler. 2001-12-09 19:39:49 +00:00
boot MFi386: revision 1.35 (Add support for writing to BIOS disks) 2001-12-12 13:47:04 +00:00
cam Remove PAO3 dependent part where I missed to remove at last commit. 2001-12-10 02:07:34 +00:00
coda Update to C99, s/__FUNCTION__/__func__/, 2001-12-10 08:09:49 +00:00
compat Update to C99, s/__FUNCTION__/__func__/, 2001-12-10 08:09:49 +00:00
conf Add maxusers auto-sizing description to NOTES file for -current 2001-12-14 01:01:20 +00:00
contrib Fix initialisation of struct nat entry, to solve a panic that occurs 2001-12-05 10:46:24 +00:00
crypto fixed the cast128 calculation with a short cipher key length. 2001-11-27 14:11:47 +00:00
ddb Implement a "kill" DDB command which is an interface to psignal() that 2001-11-27 19:56:28 +00:00
dev Convert C++ style comments to proper C ones. 2001-12-13 23:48:34 +00:00
fs Add module dependency on libmchain. 2001-12-13 13:08:34 +00:00
geom Return EOPNOTSUPP for unknown module events. 2001-11-17 00:46:08 +00:00
gnu Update to C99, s/__FUNCTION__/__func__/, 2001-12-10 08:09:49 +00:00
i4b Update to C99, s/__FUNCTION__/__func__/, 2001-12-10 08:09:49 +00:00
i386 Add maxusers auto-sizing description to NOTES file for -current 2001-12-14 01:01:20 +00:00
ia64 Overhaul the per-CPU support a bit: 2001-12-11 23:33:44 +00:00
isa Update to C99, s/__FUNCTION__/__func__/, 2001-12-10 08:09:49 +00:00
isofs/cd9660 Fix mounting root from a ISO9660 filesystem on a SCSI CDROM. 2001-11-27 03:55:43 +00:00
kern This fixes a large number of bugs in our NFS client side code. A recent 2001-12-14 01:16:57 +00:00
libkern rcsid[]->__FBSDID 2001-11-07 19:55:16 +00:00
modules Connect libiconv to the build. 2001-12-12 10:11:16 +00:00
net Update to C99, s/__FUNCTION__/__func__/, 2001-12-10 08:09:49 +00:00
netatalk Give struct socket structures a ref counting interface similar to 2001-11-17 03:07:11 +00:00
netatm Give struct socket structures a ref counting interface similar to 2001-11-17 03:07:11 +00:00
netgraph Update to C99, s/__FUNCTION__/__func__/, 2001-12-10 08:09:49 +00:00
netinet Undo one of my last minute changes; move sc_iss up earlier so it 2001-12-13 04:05:26 +00:00
netinet6 Update to C99, s/__FUNCTION__/__func__/, 2001-12-10 08:09:49 +00:00
netipx Give struct socket structures a ref counting interface similar to 2001-11-17 03:07:11 +00:00
netkey Newer SA is prefered for a out-bound packet than old one 2001-12-05 05:40:49 +00:00
netnatm Give struct socket structures a ref counting interface similar to 2001-11-17 03:07:11 +00:00
netncp Update to C99, s/__FUNCTION__/__func__/, 2001-12-10 08:09:49 +00:00
netns Give struct socket structures a ref counting interface similar to 2001-11-17 03:07:11 +00:00
netsmb Update to C99, s/__FUNCTION__/__func__/, 2001-12-10 08:09:49 +00:00
nfs Unwind some more macros. NFSMADV() was kinda silly since it was right 2001-09-28 04:37:08 +00:00
nfsclient This fixes a large number of bugs in our NFS client side code. A recent 2001-12-14 01:16:57 +00:00
nfsserver When VOP_SYMLINK fails, the value of *vpp is junk, so we must NULL 2001-12-04 16:53:42 +00:00
pc98 MFi386: revision 1.485 (the previous commit is not completely) 2001-12-12 12:27:59 +00:00
pccard Better error message when cardtype is not recognized 2001-11-13 06:46:19 +00:00
pci Avoid an unnecessary copy of a packet if it is already in a single mbuf. 2001-12-11 02:47:53 +00:00
posix4 KSE Milestone 2 2001-09-12 08:38:13 +00:00
powerpc Overhaul the per-CPU support a bit: 2001-12-11 23:33:44 +00:00
rpc
security/lomac Split out NAI Labs license and BSD license to prevent the accidental 2001-12-03 00:21:18 +00:00
sparc64 Overhaul the per-CPU support a bit: 2001-12-11 23:33:44 +00:00
svr4
sys Remove stale prototype for sonewconn3(). 2001-12-13 22:16:54 +00:00
tools Move from using PCCARD_ symbols gereated from this file to using PCMCIA_ 2001-11-11 20:15:06 +00:00
ufs Minimize the time necessary to suspend operations on a filesystem 2001-12-14 00:15:06 +00:00
vm This fixes a large number of bugs in our NFS client side code. A recent 2001-12-14 01:16:57 +00:00
Makefile