Subject: CVS commit: src/sys
To: None <source-changes@NetBSD.org>
From: YAMAMOTO Takashi <yamt@netbsd.org>
List: source-changes
Date: 07/17/2005 12:27:47
Module Name:	src
Committed By:	yamt
Date:		Sun Jul 17 12:27:47 UTC 2005

Modified Files:
	src/sys/miscfs/genfs: genfs_node.h genfs_vnops.c
	src/sys/uvm: uvm_fault.c uvm_object.h

Log Message:
ensure that vnodes with dirty pages are always on syncer's queue.

- genfs_putpages: wait for i/o completion of PG_RELEASED/PG_PAGEOUT pages by
  setting "wasclean" false when encountering them.
  suggested by Stephan Uphoff in PR/24596 (1).

- genfs_putpages: write protect pages when cleaning out, if
  we're going to take the vnode off the syncer's queue.
  uvm_fault: don't write-map pages unless its vnode is already on
  the syncer's queue.

  fix PR/24596 (3) but in the different way from the suggested fix.
  (to keep our current behaviour, ie. not to require explicit msync.
  discussed on tech-kern@.)

- genfs_putpages: don't mistakenly take a vnode off the queue
  by introducing a generation number in genfs_node.
  genfs_getpages: increment the generation number.
  suggested by Stephan Uphoff in PR/24596 (2).

- add some assertions.


To generate a diff of this commit:
cvs rdiff -r1.6 -r1.7 src/sys/miscfs/genfs/genfs_node.h
cvs rdiff -r1.100 -r1.101 src/sys/miscfs/genfs/genfs_vnops.c
cvs rdiff -r1.95 -r1.96 src/sys/uvm/uvm_fault.c
cvs rdiff -r1.18 -r1.19 src/sys/uvm/uvm_object.h

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