• Tejun Heo's avatar
    sysfs: make __sysfs_remove_dir() recursive · bcdde7e2
    Tejun Heo authored
    Currently, sysfs directory removal is inconsistent in that it would
    remove any files directly under it but wouldn't recurse into
    directories.  Thanks to group subdirectories, this doesn't even match
    with kobject boundaries.  sysfs is in the process of being separated
    out so that it can be used by multiple subsystems and we want to have
    a consistent behavior - either removal of a sysfs_dirent should remove
    every descendant entries or none instead of something inbetween.
    
    This patch implements proper recursive removal in
    __sysfs_remove_dir().  The function now walks its subtree in a
    post-order walk to remove all descendants.
    
    This is a behavior change but kobject / driver layer, which currently
    is the only consumer, has already been updated to handle duplicate
    removal attempts, so nothing should be broken after this change.
    Signed-off-by: default avatarTejun Heo <tj@kernel.org>
    Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
    bcdde7e2
dir.c 25 KB