Skip site navigation (1)Skip section navigation (2)
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>