Subject: CVS commit: [netbsd-3] src/sys/ufs/lfs
To: None <source-changes@NetBSD.org>
From: Jeff Rizzo <riz@netbsd.org>
List: source-changes
Date: 05/20/2006 21:59:47
Module Name:	src
Committed By:	riz
Date:		Sat May 20 21:59:47 UTC 2006

Modified Files:
	src/sys/ufs/lfs [netbsd-3]: lfs.h lfs_extern.h lfs_segment.c lfs_subr.c
	    lfs_vfsops.c lfs_vnops.c

Log Message:
Pull up following revision(s) (requested by perseant in ticket #1327):
	sys/ufs/lfs/lfs_vnops.c: revision 1.158
	sys/ufs/lfs/lfs_subr.c: revision 1.57
	sys/ufs/lfs/lfs_segment.c: revision 1.171
	sys/ufs/lfs/lfs.h: revision 1.97
	sys/ufs/lfs/lfs_vfsops.c: revision 1.195
	sys/ufs/lfs/lfs_extern.h: revision 1.76
Improvements to LFS's paging mechanism, to wit:
* Acknowledge that sometimes there are more dirty pages to be written to
   disk than clean segments.  When we reach the danger line,
   lfs_gop_write() now returns EAGAIN.  The caller of VOP_PUTPAGES(), if
   it holds the segment lock, drops it and waits for the cleaner to make
   room before continuing.
* Note and avoid a three-way deadlock in lfs_putpages (a writer holding
   a page busy blocks on the cleaner while the cleaner blocks on the
   segment lock while lfs_putpages blocks on the page).


To generate a diff of this commit:
cvs rdiff -r1.77.2.7 -r1.77.2.8 src/sys/ufs/lfs/lfs.h
cvs rdiff -r1.64.2.3 -r1.64.2.4 src/sys/ufs/lfs/lfs_extern.h
cvs rdiff -r1.158.2.4 -r1.158.2.5 src/sys/ufs/lfs/lfs_segment.c
cvs rdiff -r1.50.2.2 -r1.50.2.3 src/sys/ufs/lfs/lfs_subr.c
cvs rdiff -r1.167.2.8 -r1.167.2.9 src/sys/ufs/lfs/lfs_vfsops.c
cvs rdiff -r1.137.2.7 -r1.137.2.8 src/sys/ufs/lfs/lfs_vnops.c

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.