From owner-svn-src-all@FreeBSD.ORG Wed Sep 8 12:42:34 2010 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 92DF710656C4; Wed, 8 Sep 2010 12:42:34 +0000 (UTC) (envelope-from jhb@freebsd.org) Received: from cyrus.watson.org (cyrus.watson.org [65.122.17.42]) by mx1.freebsd.org (Postfix) with ESMTP id 627DA8FC1C; Wed, 8 Sep 2010 12:42:34 +0000 (UTC) Received: from bigwig.baldwin.cx (66.111.2.69.static.nyinternet.net [66.111.2.69]) by cyrus.watson.org (Postfix) with ESMTPSA id 04F9046BA2; Wed, 8 Sep 2010 08:42:34 -0400 (EDT) Received: from jhbbsd.localnet (smtp.hudson-trading.com [209.249.190.9]) by bigwig.baldwin.cx (Postfix) with ESMTPSA id 2437C8A04F; Wed, 8 Sep 2010 08:42:33 -0400 (EDT) From: John Baldwin To: src-committers@freebsd.org Date: Wed, 8 Sep 2010 08:18:58 -0400 User-Agent: KMail/1.13.5 (FreeBSD/7.3-CBSD-20100819; KDE/4.4.5; amd64; ; ) References: <201009071429.o87ETjLq002398@svn.freebsd.org> In-Reply-To: <201009071429.o87ETjLq002398@svn.freebsd.org> MIME-Version: 1.0 Content-Type: Text/Plain; charset="utf-8" Content-Transfer-Encoding: 7bit Message-Id: <201009080818.58374.jhb@freebsd.org> X-Greylist: Sender succeeded SMTP AUTH, not delayed by milter-greylist-4.0.1 (bigwig.baldwin.cx); Wed, 08 Sep 2010 08:42:33 -0400 (EDT) X-Virus-Scanned: clamav-milter 0.95.1 at bigwig.baldwin.cx X-Virus-Status: Clean X-Spam-Status: No, score=-2.6 required=4.2 tests=AWL,BAYES_00 autolearn=ham version=3.2.5 X-Spam-Checker-Version: SpamAssassin 3.2.5 (2008-06-10) on bigwig.baldwin.cx Cc: svn-src-head@freebsd.org, svn-src-all@freebsd.org Subject: Re: svn commit: r212293 - in head/sys: fs/nfsclient 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: Wed, 08 Sep 2010 12:42:34 -0000 On Tuesday, September 07, 2010 10:29:45 am John Baldwin wrote: > Author: jhb > Date: Tue Sep 7 14:29:45 2010 > New Revision: 212293 > URL: http://svn.freebsd.org/changeset/base/212293 > > Log: > Store the full timestamp when caching timestamps of files and > directories for purposes of validating name cache entries. This > closes races where two updates to a file or directory within the same > second could result in stale entries in the name cache. While here, > remove the 'n_expiry' field as it is no longer used. > > Reviewed by: rmacklem > MFC after: 1 week Note that this only reduces races if the NFS server supports sub-second timestamps. FreeBSD NFS servers do not by default since the global vfs timestamp is only updated once a second by default. In particular, the name cache entries in the NFS client can become stale any time that multiple updates can happen to a directory within the same timestamp. Put another way, if a directory has multiple "states" that share the same timestamp, the NFS client may cache the earlier state until the next directory update. It may be worth adding an optional timeout on positive cache entries in the NFS client just as we support having a timeout on negative cache entries to limit the extent of such races at the expense of increased LOOKUP RPCs. -- John Baldwin