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).
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.
_______________________________________________
svn-src-head@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/svn-src-head
To unsubscribe, send any mail to "svn-src-head-unsubscr...@freebsd.org"