Subject: Re: poolifying fileassoc
To: None <>
From: YAMAMOTO Takashi <>
List: tech-kern
Date: 10/06/2006 09:54:56
> On Thu, Oct 05, 2006 at 06:02:19AM -0700, Chuck Silvers wrote:
> > 
> > if a file is changed on an NFS server, the existing cached page on the
> > NFS client is freed and a new page is allocated to hold the new file data.
> > the new page will thus be checked again.  even if the same page were somehow
> > reused, the point where it needs to be checked is when the page is initialized
> > by reading from the NFS server, not when the page is found in the client's
> > cache, and the aiodone path is a more appropriate place to do that.
> > 
> Unfortunately, the NFS code (and possibly other FS code - I have not
> looked too far at the moment) does not call aiodone when it is
> finished the i/o

nfs uses uvm_aio_aiodone, unless you are using nqnfs.
well, it doesn't for sync i/o, but it's the same as ufs.

> - anything that used the genfs routines will be ok
> but there is no requirement for the FS code to do so.

making it a requiremnt can be a choice, maybe.

> As a quick test
> hack I added the block verify to the nfs_dio_read() and it worked well
> in picking up the backing store modifications on a NFS mount - I need
> to work out the "correct" way of doing this as wedging the check into
> FS depends code is not a good thing.

what's nfs_dio_read?