Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

kobject: Add helper kobj_ns_type_is_valid()

There are too many "(type > KOBJ_NS_TYPE_NONE) && (type < KOBJ_NS_TYPES)"
and "(type <= KOBJ_NS_TYPE_NONE) || (type >= KOBJ_NS_TYPES)", add helper
kobj_ns_type_is_valid() to eliminate duplicate code and improve
readability.

Signed-off-by: Zhen Lei <thunder.leizhen@huawei.com>
Link: https://lore.kernel.org/r/20230726062508.950-1-thunder.leizhen@huaweicloud.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

authored by

Zhen Lei and committed by
Greg Kroah-Hartman
e2dfa1d5 f429378a

+16 -17
+16 -17
lib/kobject.c
··· 56 56 kobj->ktype->get_ownership(kobj, uid, gid); 57 57 } 58 58 59 + static bool kobj_ns_type_is_valid(enum kobj_ns_type type) 60 + { 61 + if ((type <= KOBJ_NS_TYPE_NONE) || (type >= KOBJ_NS_TYPES)) 62 + return false; 63 + 64 + return true; 65 + } 66 + 59 67 static int create_dir(struct kobject *kobj) 60 68 { 61 69 const struct kobj_type *ktype = get_ktype(kobj); ··· 94 86 */ 95 87 ops = kobj_child_ns_ops(kobj); 96 88 if (ops) { 97 - BUG_ON(ops->type <= KOBJ_NS_TYPE_NONE); 98 - BUG_ON(ops->type >= KOBJ_NS_TYPES); 89 + BUG_ON(!kobj_ns_type_is_valid(ops->type)); 99 90 BUG_ON(!kobj_ns_type_registered(ops->type)); 100 91 101 92 sysfs_enable_ns(kobj->sd); ··· 1024 1017 spin_lock(&kobj_ns_type_lock); 1025 1018 1026 1019 error = -EINVAL; 1027 - if (type >= KOBJ_NS_TYPES) 1028 - goto out; 1029 - 1030 - error = -EINVAL; 1031 - if (type <= KOBJ_NS_TYPE_NONE) 1020 + if (!kobj_ns_type_is_valid(type)) 1032 1021 goto out; 1033 1022 1034 1023 error = -EBUSY; ··· 1044 1041 int registered = 0; 1045 1042 1046 1043 spin_lock(&kobj_ns_type_lock); 1047 - if ((type > KOBJ_NS_TYPE_NONE) && (type < KOBJ_NS_TYPES)) 1044 + if (kobj_ns_type_is_valid(type)) 1048 1045 registered = kobj_ns_ops_tbl[type] != NULL; 1049 1046 spin_unlock(&kobj_ns_type_lock); 1050 1047 ··· 1071 1068 bool may_mount = true; 1072 1069 1073 1070 spin_lock(&kobj_ns_type_lock); 1074 - if ((type > KOBJ_NS_TYPE_NONE) && (type < KOBJ_NS_TYPES) && 1075 - kobj_ns_ops_tbl[type]) 1071 + if (kobj_ns_type_is_valid(type) && kobj_ns_ops_tbl[type]) 1076 1072 may_mount = kobj_ns_ops_tbl[type]->current_may_mount(); 1077 1073 spin_unlock(&kobj_ns_type_lock); 1078 1074 ··· 1083 1081 void *ns = NULL; 1084 1082 1085 1083 spin_lock(&kobj_ns_type_lock); 1086 - if ((type > KOBJ_NS_TYPE_NONE) && (type < KOBJ_NS_TYPES) && 1087 - kobj_ns_ops_tbl[type]) 1084 + if (kobj_ns_type_is_valid(type) && kobj_ns_ops_tbl[type]) 1088 1085 ns = kobj_ns_ops_tbl[type]->grab_current_ns(); 1089 1086 spin_unlock(&kobj_ns_type_lock); 1090 1087 ··· 1096 1095 const void *ns = NULL; 1097 1096 1098 1097 spin_lock(&kobj_ns_type_lock); 1099 - if ((type > KOBJ_NS_TYPE_NONE) && (type < KOBJ_NS_TYPES) && 1100 - kobj_ns_ops_tbl[type]) 1098 + if (kobj_ns_type_is_valid(type) && kobj_ns_ops_tbl[type]) 1101 1099 ns = kobj_ns_ops_tbl[type]->netlink_ns(sk); 1102 1100 spin_unlock(&kobj_ns_type_lock); 1103 1101 ··· 1108 1108 const void *ns = NULL; 1109 1109 1110 1110 spin_lock(&kobj_ns_type_lock); 1111 - if ((type > KOBJ_NS_TYPE_NONE) && (type < KOBJ_NS_TYPES) && 1112 - kobj_ns_ops_tbl[type]) 1111 + if (kobj_ns_type_is_valid(type) && kobj_ns_ops_tbl[type]) 1113 1112 ns = kobj_ns_ops_tbl[type]->initial_ns(); 1114 1113 spin_unlock(&kobj_ns_type_lock); 1115 1114 ··· 1118 1119 void kobj_ns_drop(enum kobj_ns_type type, void *ns) 1119 1120 { 1120 1121 spin_lock(&kobj_ns_type_lock); 1121 - if ((type > KOBJ_NS_TYPE_NONE) && (type < KOBJ_NS_TYPES) && 1122 + if (kobj_ns_type_is_valid(type) && 1122 1123 kobj_ns_ops_tbl[type] && kobj_ns_ops_tbl[type]->drop_ns) 1123 1124 kobj_ns_ops_tbl[type]->drop_ns(ns); 1124 1125 spin_unlock(&kobj_ns_type_lock);