Skip to content
  • Tejun Heo's avatar
    sysfs: rename sysfs_assoc_lock and explain what it's about · 0cae60f9
    Tejun Heo authored
    
    
    sysfs_assoc_lock is an odd piece of locking.  In general, whoever owns
    a kobject is responsible for synchronizing sysfs operations and sysfs
    proper assumes that, for example, removal won't race with any other
    operation; however, this doesn't work for symlinking because an entity
    performing symlink doesn't usually own the target kobject and thus has
    no control over its removal.
    
    sysfs_assoc_lock synchronizes symlink operations against kobj->sd
    disassociation so that symlink code doesn't end up dereferencing
    already freed sysfs_dirent by racing with removal of the target
    kobject.
    
    This is quite obscure and the generic name of the lock and lack of
    comments make it difficult to understand its role.  Let's rename it to
    sysfs_symlink_target_lock and add comments explaining what's going on.
    
    Signed-off-by: default avatarTejun Heo <tj@kernel.org>
    Reported-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
    Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
    0cae60f9