mirror of
https://github.com/torvalds/linux.git
synced 2024-12-26 12:52:30 +00:00
kobject: kobj_type: remove default_attrs
Now that all in-kernel users of default_attrs for the kobj_type are gone and converted to properly use the default_groups pointer instead, it can be safely removed. There is one standard way to create sysfs files in a kobj_type, and not two like before, causing confusion as to which should be used. Cc: "Rafael J. Wysocki" <rafael@kernel.org> Link: https://lore.kernel.org/r/20220106133151.607703-1-gregkh@linuxfoundation.org Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
This commit is contained in:
parent
c31bc0461f
commit
cdb4f26a63
@ -703,19 +703,6 @@ int sysfs_change_owner(struct kobject *kobj, kuid_t kuid, kgid_t kgid)
|
||||
|
||||
ktype = get_ktype(kobj);
|
||||
if (ktype) {
|
||||
struct attribute **kattr;
|
||||
|
||||
/*
|
||||
* Change owner of the default attributes associated with the
|
||||
* ktype of @kobj.
|
||||
*/
|
||||
for (kattr = ktype->default_attrs; kattr && *kattr; kattr++) {
|
||||
error = sysfs_file_change_owner(kobj, (*kattr)->name,
|
||||
kuid, kgid);
|
||||
if (error)
|
||||
return error;
|
||||
}
|
||||
|
||||
/*
|
||||
* Change owner of the default groups associated with the
|
||||
* ktype of @kobj.
|
||||
|
@ -120,7 +120,6 @@ extern char *kobject_get_path(struct kobject *kobj, gfp_t flag);
|
||||
struct kobj_type {
|
||||
void (*release)(struct kobject *kobj);
|
||||
const struct sysfs_ops *sysfs_ops;
|
||||
struct attribute **default_attrs; /* use default_groups instead */
|
||||
const struct attribute_group **default_groups;
|
||||
const struct kobj_ns_type_operations *(*child_ns_type)(struct kobject *kobj);
|
||||
const void *(*namespace)(struct kobject *kobj);
|
||||
|
@ -54,32 +54,6 @@ void kobject_get_ownership(struct kobject *kobj, kuid_t *uid, kgid_t *gid)
|
||||
kobj->ktype->get_ownership(kobj, uid, gid);
|
||||
}
|
||||
|
||||
/*
|
||||
* populate_dir - populate directory with attributes.
|
||||
* @kobj: object we're working on.
|
||||
*
|
||||
* Most subsystems have a set of default attributes that are associated
|
||||
* with an object that registers with them. This is a helper called during
|
||||
* object registration that loops through the default attributes of the
|
||||
* subsystem and creates attributes files for them in sysfs.
|
||||
*/
|
||||
static int populate_dir(struct kobject *kobj)
|
||||
{
|
||||
const struct kobj_type *t = get_ktype(kobj);
|
||||
struct attribute *attr;
|
||||
int error = 0;
|
||||
int i;
|
||||
|
||||
if (t && t->default_attrs) {
|
||||
for (i = 0; (attr = t->default_attrs[i]) != NULL; i++) {
|
||||
error = sysfs_create_file(kobj, attr);
|
||||
if (error)
|
||||
break;
|
||||
}
|
||||
}
|
||||
return error;
|
||||
}
|
||||
|
||||
static int create_dir(struct kobject *kobj)
|
||||
{
|
||||
const struct kobj_type *ktype = get_ktype(kobj);
|
||||
@ -90,12 +64,6 @@ static int create_dir(struct kobject *kobj)
|
||||
if (error)
|
||||
return error;
|
||||
|
||||
error = populate_dir(kobj);
|
||||
if (error) {
|
||||
sysfs_remove_dir(kobj);
|
||||
return error;
|
||||
}
|
||||
|
||||
if (ktype) {
|
||||
error = sysfs_create_groups(kobj, ktype->default_groups);
|
||||
if (error) {
|
||||
|
Loading…
Reference in New Issue
Block a user