Messages in this thread | | | Date | Wed, 12 Feb 2020 05:19:14 -0800 | From | Greg Kroah-Hartman <> | Subject | Re: [PATCH net-next 01/10] sysfs: add sysfs_file_change_owner() |
| |
On Wed, Feb 12, 2020 at 11:43:12AM +0100, Christian Brauner wrote: > Add a helper to change the owner of a sysfs file. > The ownership of a sysfs object is determined based on the ownership of > the corresponding kobject, i.e. only if the ownership of a kobject is > changed will this function change the ownership of the corresponding > sysfs entry. > This function will be used to correctly account for kobject ownership > changes, e.g. when moving network devices between network namespaces. > > Signed-off-by: Christian Brauner <christian.brauner@ubuntu.com> > --- > fs/sysfs/file.c | 46 +++++++++++++++++++++++++++++++++++++++++++ > include/linux/sysfs.h | 7 +++++++ > 2 files changed, 53 insertions(+) > > diff --git a/fs/sysfs/file.c b/fs/sysfs/file.c > index 130fc6fbcc03..007b97ca8165 100644 > --- a/fs/sysfs/file.c > +++ b/fs/sysfs/file.c > @@ -558,3 +558,49 @@ void sysfs_remove_bin_file(struct kobject *kobj, > kernfs_remove_by_name(kobj->sd, attr->attr.name); > } > EXPORT_SYMBOL_GPL(sysfs_remove_bin_file); > + > +static int internal_change_owner(struct kernfs_node *kn, struct kobject *kobj) > +{ > + kuid_t uid; > + kgid_t gid; > + struct iattr newattrs = { > + .ia_valid = ATTR_UID | ATTR_GID, > + }; > + > + kobject_get_ownership(kobj, &uid, &gid); > + newattrs.ia_uid = uid; > + newattrs.ia_gid = gid; > + > + return kernfs_setattr(kn, &newattrs); > +} > + > +/** > + * sysfs_file_change_owner - change owner of a file. > + * @kobj: object. > + * @name: name of the file to change. > + * can be NULL to change current file. > + */ > +int sysfs_file_change_owner(struct kobject *kobj, const char *name)
Same meta-question I did for the other call, what does this set the file owner to? How to you specify this?
I understand your overall goal/need here, I'm just not understanding how this actually changes anything.
lost,
greg k-h
| |