Skip to content
  • Tejun Heo's avatar
    sysfs, kernfs: make sysfs_dirent definition public · cf9e5a73
    Tejun Heo authored
    
    
    sysfs_dirent includes some information which should be available to
    kernfs users - the type, flags, name and parent pointer.  This patch
    moves sysfs_dirent definition from kernfs/kernfs-internal.h to
    include/linux/kernfs.h so that kernfs users can access them.
    
    The type part of flags is exported as enum kernfs_node_type, the flags
    kernfs_node_flag, sysfs_type() and kernfs_enable_ns() are moved to
    include/linux/kernfs.h and the former is updated to return the enum
    type.  sysfs_dirent->s_parent and ->s_name are marked explicitly as
    public.
    
    This patch doesn't introduce any functional changes.
    
    v2: Flags exported too and kernfs_enable_ns() definition moved.
    
    v3: While moving kernfs_enable_ns() to include/linux/kernfs.h, v1 and
        v2 put the definition outside CONFIG_SYSFS replacing the dummy
        implementation with the actual implementation too.  Unfortunately,
        this can lead to oops when !CONFIG_SYSFS because
        kernfs_enable_ns() may be called on a NULL @sd and now tries to
        dereference @sd instead of not doing anything.  This issue was
        reported by Yuanhan Liu.
    
    Signed-off-by: default avatarTejun Heo <tj@kernel.org>
    Reported-by: default avatarYuanhan Liu <yuanhan.liu@linux.intel.com>
    Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
    cf9e5a73