Date: Sat, 11 Oct 1997 22:13:35 +0000 (GMT) From: Terry Lambert <tlambert@primenet.com> To: bde@zeta.org.au (Bruce Evans) Cc: bde@zeta.org.au, helbig@Informatik.BA-Stuttgart.DE, current@FreeBSD.ORG Subject: Re: make world failed Message-ID: <199710112213.PAA06609@usr06.primenet.com> In-Reply-To: <199710111357.XAA24301@godzilla.zeta.org.au> from "Bruce Evans" at Oct 11, 97 11:57:36 pm
next in thread | previous in thread | raw e-mail | index | archive | help
> 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.
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?199710112213.PAA06609>