From owner-svn-src-all@FreeBSD.ORG Tue Jun 19 03:06:09 2012 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 6F6F61065670; Tue, 19 Jun 2012 03:06:09 +0000 (UTC) (envelope-from bjk@freebsd.org) Received: from freefall.freebsd.org (freefall.freebsd.org [IPv6:2001:4f8:fff6::28]) by mx1.freebsd.org (Postfix) with ESMTP id 54DD58FC0A; Tue, 19 Jun 2012 03:06:09 +0000 (UTC) Received: from freefall.freebsd.org (localhost [127.0.0.1]) by freefall.freebsd.org (8.14.5/8.14.5) with ESMTP id q5J369jR029323; Tue, 19 Jun 2012 03:06:09 GMT (envelope-from bjk@freebsd.org) Received: from localhost (bjk@localhost) by freefall.freebsd.org (8.14.5/8.14.5/Submit) with ESMTP id q5J369hk029320; Tue, 19 Jun 2012 03:06:09 GMT (envelope-from bjk@freebsd.org) X-Authentication-Warning: freefall.freebsd.org: bjk owned process doing -bs Date: Tue, 19 Jun 2012 03:06:09 +0000 (UTC) From: Benjamin Kaduk To: Rick Macklem In-Reply-To: <201206182217.q5IMHTJE003928@svn.freebsd.org> Message-ID: References: <201206182217.q5IMHTJE003928@svn.freebsd.org> User-Agent: Alpine 2.00 (BSF 1167 2008-08-23) MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII; format=flowed Cc: svn-src-head@freebsd.org, svn-src-all@freebsd.org, src-committers@freebsd.org Subject: Re: svn commit: r237244 - head/sys/fs/nfsclient X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 19 Jun 2012 03:06:09 -0000 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.