Subject: CVS commit: src/sys/ufs/lfs
To: None <source-changes@NetBSD.org>
From: Konrad Schroder <perseant@netbsd.org>
List: source-changes
Date: 03/24/2006 20:05:32
Module Name:	src
Committed By:	perseant
Date:		Fri Mar 24 20:05:32 UTC 2006

Modified Files:
	src/sys/ufs/lfs: lfs.h lfs_extern.h lfs_segment.c lfs_subr.c
	    lfs_vfsops.c lfs_vnops.c

Log Message:
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.96 -r1.97 src/sys/ufs/lfs/lfs.h
cvs rdiff -r1.75 -r1.76 src/sys/ufs/lfs/lfs_extern.h
cvs rdiff -r1.170 -r1.171 src/sys/ufs/lfs/lfs_segment.c
cvs rdiff -r1.56 -r1.57 src/sys/ufs/lfs/lfs_subr.c
cvs rdiff -r1.194 -r1.195 src/sys/ufs/lfs/lfs_vfsops.c
cvs rdiff -r1.157 -r1.158 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.