• Christian Brauner's avatar
    sysfs: add sysfs_change_owner() · 2c4f9401
    Christian Brauner authored
    Add a helper to change the owner of sysfs objects.
    This function will be used to correctly account for kobject ownership
    changes, e.g. when moving network devices between network namespaces.
    
    This mirrors how a kobject is added through driver core which in its guts is
    done via kobject_add_internal() which in summary creates the main directory via
    create_dir(), populates that directory with the groups associated with the
    ktype of the kobject (if any) and populates the directory with the basic
    attributes associated with the ktype of the kobject (if any). These are the
    basic steps that are associated with adding a kobject in sysfs.
    Any additional properties are added by the specific subsystem itself (not by
    driver core) after it has registered the device. So for the example of network
    devices, a network device will e.g. register a queue subdirectory under the
    basic sysfs directory for the network device and than further subdirectories
    within that queues subdirectory.  But that is all specific to network devices
    and they call the corresponding sysfs functions to do that directly when they
    create those queue objects. So anything that a subsystem adds outside of what
    driver core does must also be changed by it (That's already true for removal of
    files it created outside of driver core.) and it's the same for ownership
    changes.
    Reviewed-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
    Signed-off-by: default avatarChristian Brauner <christian.brauner@ubuntu.com>
    Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
    2c4f9401
file.c 17.2 KB