• Tejun Heo's avatar
    sysfs: remove ktype->namespace() invocations in directory code · e34ff490
    Tejun Heo authored
    For some unrecognizable reason, namespace information is communicated
    to sysfs through ktype->namespace() callback when there's *nothing*
    which needs the use of a callback.  The whole sequence of operations
    is completely synchronous and sysfs operations simply end up calling
    back into the layer which just invoked it in order to find out the
    namespace information, which is completely backwards, obfuscates
    what's going on and unnecessarily tangles two separate layers.
    
    This patch doesn't remove ktype->namespace() but shifts its handling
    to kobject layer.  We probably want to get rid of the callback in the
    long term.
    
    This patch adds an explicit param to sysfs_{create|rename|move}_dir()
    and renames them to sysfs_{create|rename|move}_dir_ns(), respectively.
    ktype->namespace() invocations are moved to the calling sites of the
    above functions.  A new helper kboject_namespace() is introduced which
    directly tests kobj_ns_type_operations->type which should give the
    same result as testing sysfs_fs_type(parent_sd) and returns @kobj's
    namespace tag as necessary.  kobject_namespace() is extern as it will
    be used from another file in the following patches.
    
    This patch should be an equivalent conversion without any functional
    difference.
    Signed-off-by: default avatarTejun Heo <tj@kernel.org>
    Cc: Eric W. Biederman <ebiederm@xmission.com>
    Cc: Kay Sievers <kay@vrfy.org>
    Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
    e34ff490
dir.c 24.5 KB