• T
    sysfs: make __sysfs_remove_dir() recursive · bcdde7e2
    Tejun Heo 提交于
    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: NTejun Heo <tj@kernel.org>
    Signed-off-by: NGreg Kroah-Hartman <gregkh@linuxfoundation.org>
    bcdde7e2
dir.c 25.0 KB