On 13-Apr-2000 H. Peter Anvin wrote:
> A positive dentry may not transition to negative, so if you have taken
> the dentry from positive to negative you have violated a dcache
> constraint.
> 
> Linus: is this constraint still applicable?

Sorry, I mis-read the code; that's the path where the dentry is -ve to
start with. The +ve dentry path simply invalidates the dentry if the
mount fails.

The underlying problem is that I'm trying to make the filesystem exist
entirely in dcache, but I want to store information about file names of
files which don't necessarily exist.  That is, a name could be in use and
+ve, then deleted (from a failed mount), but I want that dentry to stay
around as memory of that failed mount so that future mount requests for
that name can be suppressed for a while.

At present that's done with a succession of dentry instances, but that
makes it really hard when processes are blocked on a particular dentry
and it doesn't work in all cases (failed mounts are forgotten about, so
you can get a storm of failing mount requests).  The alternative is to
keep some auxillary structure for that information, which is unappealing
because the dcache is so close to what I need.

Would the recent work on unattached dentry trees allow me to keep an
unattached directory of the names I want to keep track of while allowing
me to control which ones are visible in the autofs namespace?

        J

Reply via email to