• M
    vfs: __d_path: dont prepend the name of the root dentry · 98dc568b
    Miklos Szeredi 提交于
    In the old times pseudo-filesystems set the name of theroot dentry to
    some prefix like "pipe:" and the name of the child dentry to "[123]"
    and relied on a hack in __d_path() to replace the preceding slash with
    the root's name to get "pipe:[123]".
    
    Then the d_dname() dentry operation was introduced which solved the
    same problem without having to pre-fill the name in each dentry.
    
    Currently the following pseudo filesystems exist in the kernel:
    
    perfmon
    mtd
    anon_inode
    bdev
    pipe
    socket
    
    Of these only perfmon, anon_inode, pipe and socket create
    sub-dentries, all of which have now been switched to using d_dname().
    
    bdev and mtd only create inodes.
    
    This means that now the hack to overwrite the slash can be removed, so
    for unreachable paths (e.g. within a detached mount) the path string
    won't be polluted with garbage.  For these cases a subsequent patch
    will add a prefix, indicating that the path is unreachable.
    Signed-off-by: NMiklos Szeredi <mszeredi@suse.cz>
    Signed-off-by: NAl Viro <viro@zeniv.linux.org.uk>
    98dc568b
dcache.c 59.9 KB