dentry/vfsmount/list problem

From: A. Ott (ao@ao.morpork.de)
Date: Mon Jul 10 2000 - 11:04:00 EDT

  • Next message: Mikael Pettersson: "[PATCH] compile fix for parport_pc.c in test3-pre"

    Hi!

    From a dentry I need to find its parent dentry. As long as no mount point
    is touched, no problem (dentry->d_parent). The mount point issue used to
    be easily solved with a simple ->d_covers in between. Unfortunately,
    d_covers has been silently removed in 2.4.0-test1.

    So now my problem is the following:

    - I have a dentry, which is the root dentry of a filesystem.
    - I want to access the (first) mount point dentry and go on to its parent

    I have already experimented for hours with the list
    dentry->d_sb->s_mounts, struggling with vfsmounts, list_entries and such.
    My idea was to use

    tmp_mnt =
     list_entry(&(dentry->d_sb->s_mounts.next), struct vfsmount, mnt_list);
    new_dentry = tmp_mnt->mnt_mountpoint;

    but that does not work, the new_dentry value is bogus.

    I would appreciate any help. I already found a short doc about the now
    used list management in linux-kernel, which at least gave me some
    understanding and took me where I am now.

    BTW: WHY do such fundamental changes in kernel mechanisms (lookup_dentry
    -> path_walk, dentries -> nameidata with vfsmounts, sb->s_mounts with
    undocumented lists of these new vfsmount structs) take place in the last
    steps prior to a new stable series? I'd have liked to support 2.4.0 with
    RSBAC as soon as it comes out, but I don't see that happen now.

    Amon.

    --
    ## CrossPoint v3.11 ##
    

    - 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.tux.org/lkml/



    This archive was generated by hypermail 2b29 : Mon Jul 10 2000 - 12:35:19 EDT