Lines Matching refs:kobj

34 static umode_t __first_visible(const struct attribute_group *grp, struct kobject *kobj)  in __first_visible()  argument
37 return grp->is_visible(kobj, grp->attrs[0], 0); in __first_visible()
40 return grp->is_visible_const(kobj, grp->attrs[0], 0); in __first_visible()
43 return grp->is_bin_visible(kobj, grp->bin_attrs[0], 0); in __first_visible()
48 static int create_files(struct kernfs_node *parent, struct kobject *kobj, in create_files() argument
69 mode = grp->is_visible(kobj, *attr, i); in create_files()
71 mode = grp->is_visible_const(kobj, *attr, i); in create_files()
102 mode = grp->is_bin_visible(kobj, *bin_attr, i); in create_files()
108 size = grp->bin_size(kobj, *bin_attr, i); in create_files()
129 static int internal_create_group(struct kobject *kobj, int update, in internal_create_group() argument
137 if (WARN_ON(!kobj || (!update && !kobj->sd))) in internal_create_group()
141 if (unlikely(update && !kobj->sd)) in internal_create_group()
146 kobj->name, grp->name ?: ""); in internal_create_group()
150 kobject_get_ownership(kobj, &uid, &gid); in internal_create_group()
152 umode_t mode = __first_visible(grp, kobj); in internal_create_group()
160 kn = kernfs_find_and_get(kobj->sd, grp->name); in internal_create_group()
163 kobj->name, grp->name); in internal_create_group()
167 sysfs_remove_group(kobj, grp); in internal_create_group()
176 kn = kernfs_create_dir_ns(kobj->sd, grp->name, mode, in internal_create_group()
177 uid, gid, kobj, NULL); in internal_create_group()
180 sysfs_warn_dup(kobj->sd, grp->name); in internal_create_group()
185 kn = kobj->sd; in internal_create_group()
189 error = create_files(kn, kobj, uid, gid, grp, update); in internal_create_group()
212 int sysfs_create_group(struct kobject *kobj, in sysfs_create_group() argument
215 return internal_create_group(kobj, 0, grp); in sysfs_create_group()
219 static int internal_create_groups(struct kobject *kobj, int update, in internal_create_groups() argument
229 error = internal_create_group(kobj, update, groups[i]); in internal_create_groups()
232 sysfs_remove_group(kobj, groups[i]); in internal_create_groups()
252 int sysfs_create_groups(struct kobject *kobj, in sysfs_create_groups() argument
255 return internal_create_groups(kobj, 0, groups); in sysfs_create_groups()
270 int sysfs_update_groups(struct kobject *kobj, in sysfs_update_groups() argument
273 return internal_create_groups(kobj, 1, groups); in sysfs_update_groups()
295 int sysfs_update_group(struct kobject *kobj, in sysfs_update_group() argument
298 return internal_create_group(kobj, 1, grp); in sysfs_update_group()
310 void sysfs_remove_group(struct kobject *kobj, in sysfs_remove_group() argument
313 struct kernfs_node *parent = kobj->sd; in sysfs_remove_group()
320 grp->name, kobject_name(kobj)); in sysfs_remove_group()
344 void sysfs_remove_groups(struct kobject *kobj, in sysfs_remove_groups() argument
352 sysfs_remove_group(kobj, groups[i]); in sysfs_remove_groups()
365 int sysfs_merge_group(struct kobject *kobj, in sysfs_merge_group() argument
375 parent = kernfs_find_and_get(kobj->sd, grp->name); in sysfs_merge_group()
379 kobject_get_ownership(kobj, &uid, &gid); in sysfs_merge_group()
399 void sysfs_unmerge_group(struct kobject *kobj, in sysfs_unmerge_group() argument
405 parent = kernfs_find_and_get(kobj->sd, grp->name); in sysfs_unmerge_group()
421 int sysfs_add_link_to_group(struct kobject *kobj, const char *group_name, in sysfs_add_link_to_group() argument
427 parent = kernfs_find_and_get(kobj->sd, group_name); in sysfs_add_link_to_group()
444 void sysfs_remove_link_from_group(struct kobject *kobj, const char *group_name, in sysfs_remove_link_from_group() argument
449 parent = kernfs_find_and_get(kobj->sd, group_name); in sysfs_remove_link_from_group()
466 int compat_only_sysfs_link_entry_to_kobj(struct kobject *kobj, in compat_only_sysfs_link_entry_to_kobj() argument
497 link = kernfs_create_link(kobj->sd, symlink_name, entry); in compat_only_sysfs_link_entry_to_kobj()
499 sysfs_warn_dup(kobj->sd, symlink_name); in compat_only_sysfs_link_entry_to_kobj()
507 static int sysfs_group_attrs_change_owner(struct kobject *kobj, in sysfs_group_attrs_change_owner() argument
521 mode = grp->is_visible(kobj, *attr, i); in sysfs_group_attrs_change_owner()
543 mode = grp->is_bin_visible(kobj, *bin_attr, i); in sysfs_group_attrs_change_owner()
572 int sysfs_group_change_owner(struct kobject *kobj, in sysfs_group_change_owner() argument
584 if (!kobj->state_in_sysfs) in sysfs_group_change_owner()
588 grp_kn = kernfs_find_and_get(kobj->sd, grp->name); in sysfs_group_change_owner()
590 kernfs_get(kobj->sd); in sysfs_group_change_owner()
591 grp_kn = kobj->sd; in sysfs_group_change_owner()
598 error = sysfs_group_attrs_change_owner(kobj, grp_kn, grp, &newattrs); in sysfs_group_change_owner()
615 int sysfs_groups_change_owner(struct kobject *kobj, in sysfs_groups_change_owner() argument
621 if (!kobj->state_in_sysfs) in sysfs_groups_change_owner()
628 error = sysfs_group_change_owner(kobj, groups[i], kuid, kgid); in sysfs_groups_change_owner()