lkml.org 
[lkml]   [1998]   [Mar]   [3]   [last100]   RSS Feed
Views: [more markup]  [less markup]  [headers]  [forward] 
 
Messages in this thread
/
FromMatija Nalis <>
Subjectdentries question (umsdos)
DateTue, 3 Mar 1998 12:16:22 +0100 (MET)
Here is a problem that I had while fixing umsdosfs:

It is rather specific filesystem, that uses msdosfs as underlaying layer.
It needs to use msdos file named '--linux-.---' at many places. To do
that (using msdos_lookup and other functions) it uses following code to
create dentry:


    struct dentry *ret, *parent=NULL;
    struct qstr qname;

    qname.name = name;  /* this is passed */
    qname.len = len;    /* this is passed */
    qname.hash = 0;
    ret = d_alloc (parent,&qname);      /* create new dentry */
    d_add (ret, inode); /* inode is passed */
the question is next:
after the dentry has been used and is no longer needed, what do I need to do
get rid of it ? d_invalidate ?


Also question about iput() and dput() - when those should be called and what
exactly do they do ?


problem is that I had messages like
iput: device 02:00 inode 309 still has aliases !
(some of old not-yet-converted-code calls iput on dentry that still exists)

and
VFS: busy inodes after unmount. self-destruct in 5 seconds. Bye-bye.
on umount.

And then strange problems if I try to mount something other at that
mountpoint, usually followed by kernel panic.

I would appreciate any input or pointer (to something other than 'read the
source' - I'm getting lost in it :) anyone can give me.

TIA,
Matija

--
Opinions above are GNU-copylefted.

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.rutgers.edu

\
 
 \ /
  Last update: 2005-03-22 12:41    [from the cache]
©2003-2008