Subject: CVS commit: syssrc/sys/ufs/ffs
To: None <source-changes@netbsd.org>
From: Frank van der Linden <fvdl@netbsd.org>
List: source-changes
Date: 12/27/2001 03:45:00
Module Name:	syssrc
Committed By:	fvdl
Date:		Thu Dec 27 01:45:00 UTC 2001

Modified Files:
	syssrc/sys/ufs/ffs: ffs_vnops.c

Log Message:
The softdep code sometimes use vfs_vget .. vput. For removals, these
would result in a vop_inactive call for the vnode each time, resulting
in vinvalbuf->fsync. The original softdep code avoided the fsync
in vinvalbuf by not calling it if there were no dirty blocks. This
was changed in NetBSD. Also, flush_inodedeps was changed to mark
the inode as modified so that it would do an inode update and flush the
last one. This combination basically caused a sync write for each removed
file in an rm -rf (showing up delayed from the syncer a lot of the time).

If called from vinvalbuf (FSYNC_RECLAIM), and there were no dirty blocks
or pages to begin with, still do everything as normal, so that possible dirty
blocks in transit to disk are properly waited for, etc, but don't pass
UPDATE_WAIT to VOP_UPDATE, since there is no need for it in that case.


To generate a diff of this commit:
cvs rdiff -r1.46 -r1.47 syssrc/sys/ufs/ffs/ffs_vnops.c

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