Subject: CVS commit: src/sys/ufs/lfs
To: None <source-changes@NetBSD.org>
From: Konrad Schroder <perseant@netbsd.org>
List: source-changes
Date: 05/12/2006 23:36:12
Module Name:	src
Committed By:	perseant
Date:		Fri May 12 23:36:12 UTC 2006

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

Log Message:
Fixes to address the "vinvalbuf: dirty blocks" panic that can occur when
many inodes are cleaned at once.  Make sure that we write all the pages
on vnodes that are being flushed, even if we don't think there's room;
drain v_numoutput before lfs_vflush() completes.

Also, don't allow a vnode that is in the process of being cleaned to be
chosen by getnewvnode(); this avoids a segment accounting panic in the case
that a large number of inodes are fed to lfs_markv() all at once.


To generate a diff of this commit:
cvs rdiff -r1.105 -r1.106 src/sys/ufs/lfs/lfs.h
cvs rdiff -r1.92 -r1.93 src/sys/ufs/lfs/lfs_alloc.c
cvs rdiff -r1.177 -r1.178 src/sys/ufs/lfs/lfs_segment.c
cvs rdiff -r1.208 -r1.209 src/sys/ufs/lfs/lfs_vfsops.c
cvs rdiff -r1.174 -r1.175 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.