svn commit: r237244 - head/sys/fs/nfsclient

Konstantin Belousov kostikbel at gmail.com
Tue Jun 19 07:59:36 UTC 2012


On Tue, Jun 19, 2012 at 03:06:09AM +0000, Benjamin Kaduk wrote:
> On Mon, 18 Jun 2012, Rick Macklem wrote:
> 
> >Author: rmacklem
> >Date: Mon Jun 18 22:17:28 2012
> >New Revision: 237244
> >URL: http://svn.freebsd.org/changeset/base/237244
> >
> >Log:
> > Fix the NFSv4 client for the case where mmap'd files are
> > written, but not msync'd by a process. A VOP_PUTPAGES()
> > called when VOP_RECLAIM() happens will usually fail, since
> > the NFSv4 Open has already been closed by VOP_INACTIVE().
> > Add a vm_object_page_clean() call to the NFSv4 client's
> > VOP_INACTIVE(), so that the write happens before the NFSv4
> > Open is closed. kib@ suggested using vgone() instead and
> > I will explore this, but this patch fixes things in the
> 
> Hi Rick,
> 
> OpenAFS is currently using vgone() in the vnode cleanup path (though it is 
> actually in RECLAIM not INACTIVE because of how AFS has traditionally 
> separated the two).
Calling vgone() from VOP_RECLAIM is exactly NOP.

> However, it seems that the other *BSD implementations do not call vgone() 
> in the same place, instead the corresponding flush functions call 
> cache_purge() and sometimes other things.  My colleague is trying to get 
> our FreeBSD implementation to match, so I would be interested in your test 
> case to confirm that we do not rely on the full vgone() there.
> 
> Thanks,
> 
> Ben
> 
> > meantime. For some reason, the VOP_PUTPAGES() is still
> > attaempted in VOP_RECLAIM(), but having this fail doesn't
> > cause any problems except a "stateid0 in write" being logged.
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 196 bytes
Desc: not available
Url : http://lists.freebsd.org/pipermail/svn-src-all/attachments/20120619/68823c4b/attachment.pgp


More information about the svn-src-all mailing list