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