From owner-freebsd-current Sat Oct 11 15:13:47 1997 Return-Path: Received: (from root@localhost) by hub.freebsd.org (8.8.7/8.8.7) id PAA14422 for current-outgoing; Sat, 11 Oct 1997 15:13:47 -0700 (PDT) (envelope-from owner-freebsd-current) Received: from usr06.primenet.com (tlambert@usr06.primenet.com [206.165.6.206]) by hub.freebsd.org (8.8.7/8.8.7) with ESMTP id PAA14417 for ; Sat, 11 Oct 1997 15:13:44 -0700 (PDT) (envelope-from tlambert@usr06.primenet.com) Received: (from tlambert@localhost) by usr06.primenet.com (8.8.5/8.8.5) id PAA06609; Sat, 11 Oct 1997 15:13:36 -0700 (MST) From: Terry Lambert Message-Id: <199710112213.PAA06609@usr06.primenet.com> Subject: Re: make world failed To: bde@zeta.org.au (Bruce Evans) Date: Sat, 11 Oct 1997 22:13:35 +0000 (GMT) Cc: bde@zeta.org.au, helbig@Informatik.BA-Stuttgart.DE, current@FreeBSD.ORG In-Reply-To: <199710111357.XAA24301@godzilla.zeta.org.au> from "Bruce Evans" at Oct 11, 97 11:57:36 pm X-Mailer: ELM [version 2.4 PL23] Content-Type: text Sender: owner-freebsd-current@FreeBSD.ORG X-Loop: FreeBSD.org Precedence: bulk > I think the problem is really in nfs. Removed directories should not > be found by namei(). nfs presumably caches the directory name and > finds the old inode and gets ESTALE when it attempts to access the > inode. It should purge the cache and retry (not too many times). > It does purge the cache in nfs_request() but it doesn't seem to retry > there. This really isn't enough. If you delete a file from one client and have a cache entry in another, you will get ESTALE (this is the case I alluded to in the posting immediately previous to this one). The real problem here is that each FS has its own access to thename cache, and each implementation has its own chance to have bugs. If it were implemented in the VFS layer above the VNOP's (ie: in namei()), then there would be a single implementation, and one bug fix would fix all FS's. This falls into that rather large bucket which I call "layering fixes". You would still need to have the ability to say "non-cached FS" as a per FS flag, since (as noted above) you can't guarantee name cache coherency between multiple NFS clients manipulating a remote directory. Terry Lambert terry@lambert.org --- Any opinions in this posting are my own and not those of my present or previous employers.