Skip to content

Commit

Permalink
kobject: Remove redundant checks for whether ktype is NULL
Browse files Browse the repository at this point in the history
When adding koject or kset, we have made sure that ktype cannot be NULL.
Therefore, after adding koject or kset, there is no need to worry about
ktype being NULL. Clear all ktype-related redundancy checks.

Signed-off-by: Zhen Lei <thunder.leizhen@huawei.com>
Link: https://lore.kernel.org/r/20230805084114.1298-3-thunder.leizhen@huaweicloud.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
  • Loading branch information
Zhen Lei authored and Greg Kroah-Hartman committed Aug 19, 2023
1 parent 4d0fe8c commit 1b28cb8
Showing 1 changed file with 10 additions and 14 deletions.
24 changes: 10 additions & 14 deletions lib/kobject.c
Original file line number Diff line number Diff line change
Expand Up @@ -74,12 +74,10 @@ static int create_dir(struct kobject *kobj)
if (error)
return error;

if (ktype) {
error = sysfs_create_groups(kobj, ktype->default_groups);
if (error) {
sysfs_remove_dir(kobj);
return error;
}
error = sysfs_create_groups(kobj, ktype->default_groups);
if (error) {
sysfs_remove_dir(kobj);
return error;
}

/*
Expand Down Expand Up @@ -591,8 +589,7 @@ static void __kobject_del(struct kobject *kobj)
sd = kobj->sd;
ktype = get_ktype(kobj);

if (ktype)
sysfs_remove_groups(kobj, ktype->default_groups);
sysfs_remove_groups(kobj, ktype->default_groups);

/* send "remove" if the caller did not do it but sent "add" */
if (kobj->state_add_uevent_sent && !kobj->state_remove_uevent_sent) {
Expand Down Expand Up @@ -669,10 +666,6 @@ static void kobject_cleanup(struct kobject *kobj)
pr_debug("'%s' (%p): %s, parent %p\n",
kobject_name(kobj), kobj, __func__, kobj->parent);

if (t && !t->release)
pr_debug("'%s' (%p): does not have a release() function, it is broken and must be fixed. See Documentation/core-api/kobject.rst.\n",
kobject_name(kobj), kobj);

/* remove from sysfs if the caller did not do it */
if (kobj->state_in_sysfs) {
pr_debug("'%s' (%p): auto cleanup kobject_del\n",
Expand All @@ -683,10 +676,13 @@ static void kobject_cleanup(struct kobject *kobj)
parent = NULL;
}

if (t && t->release) {
if (t->release) {
pr_debug("'%s' (%p): calling ktype release\n",
kobject_name(kobj), kobj);
t->release(kobj);
} else {
pr_debug("'%s' (%p): does not have a release() function, it is broken and must be fixed. See Documentation/core-api/kobject.rst.\n",
kobject_name(kobj), kobj);
}

/* free name if we allocated it */
Expand Down Expand Up @@ -1060,7 +1056,7 @@ const struct kobj_ns_type_operations *kobj_child_ns_ops(const struct kobject *pa
{
const struct kobj_ns_type_operations *ops = NULL;

if (parent && parent->ktype && parent->ktype->child_ns_type)
if (parent && parent->ktype->child_ns_type)
ops = parent->ktype->child_ns_type(parent);

return ops;
Expand Down

0 comments on commit 1b28cb8

Please sign in to comment.