Re: vfs

Magnus Ahltorp (map@stacken.kth.se)
12 Jul 1998 02:47:49 +0200


> > Is there a good way to kill this dentry? It should not be visible when
> > doing a cached lookup, and it shouldn't be on the directory's hash
> > table.
>
> How about d_drop() ? Also, check out the FAQ listed below: it has a
> link to my VFS primer.

Well, that removes it from the hash table, but it doesn't remove it
from the d_alias list.

What I want is to undo all the actions of d_add() (since d_add() is
what I have done). d_drop() leaves an undo of d_instantiate() left to
be done. dentry_iput() could be a solution, but that function is a
static in dcache.c, and is only called by dput(), prune_one_dentry()
and d_delete().

d_delete() is very wrong, prune_one_dentry() is also static, and
dput() could be right, but I've tried that many times, with different
results (all wrong).

What the functions do, I can read in the source, but what the
designers thought about what the functions should be used for, I
cannot. Some functions are well commented, but others are not at all.

My file system worked really well until a couple of weeks ago, when I
decided I should get rid of those "still has aliases" messages, and do
everything the Right Way. My problem is, where is that Right Way? And,
I don't think I need a VFS primer, I need a VFS whyer.

/Magnus
map@stacken.kth.se

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.rutgers.edu
Please read the FAQ at http://www.altern.org/andrebalsa/doc/lkml-faq.html