Lines Matching refs:grp

21 			 const struct attribute_group *grp)
26 if (grp->attrs)
27 for (attr = grp->attrs; *attr; attr++)
29 if (grp->bin_attrs)
30 for (bin_attr = grp->bin_attrs; *bin_attr; bin_attr++)
34 static umode_t __first_visible(const struct attribute_group *grp, struct kobject *kobj)
36 if (grp->attrs && grp->attrs[0] && grp->is_visible)
37 return grp->is_visible(kobj, grp->attrs[0], 0);
39 if (grp->bin_attrs && grp->bin_attrs[0] && grp->is_bin_visible)
40 return grp->is_bin_visible(kobj, grp->bin_attrs[0], 0);
47 const struct attribute_group *grp, int update)
53 if (grp->attrs) {
54 for (i = 0, attr = grp->attrs; *attr && !error; i++, attr++) {
64 if (grp->is_visible) {
65 mode = grp->is_visible(kobj, *attr, i);
82 remove_files(parent, grp);
87 if (grp->bin_attrs) {
88 for (i = 0, bin_attr = grp->bin_attrs; *bin_attr; i++, bin_attr++) {
94 if (grp->is_bin_visible) {
95 mode = grp->is_bin_visible(kobj, *bin_attr, i);
113 remove_files(parent, grp);
121 const struct attribute_group *grp)
135 if (!grp->attrs && !grp->bin_attrs) {
137 kobj->name, grp->name ?: "");
142 if (grp->name) {
143 umode_t mode = __first_visible(grp, kobj);
151 kn = kernfs_find_and_get(kobj->sd, grp->name);
153 pr_debug("attr grp %s/%s not created yet\n",
154 kobj->name, grp->name);
158 sysfs_remove_group(kobj, grp);
167 kn = kernfs_create_dir_ns(kobj->sd, grp->name, mode,
171 sysfs_warn_dup(kobj->sd, grp->name);
180 error = create_files(kn, kobj, uid, gid, grp, update);
182 if (grp->name)
187 if (grp->name && update)
196 * @grp: The attribute group to create
204 const struct attribute_group *grp)
206 return internal_create_group(kobj, 0, grp);
271 * @grp: The attribute group to update
287 const struct attribute_group *grp)
289 return internal_create_group(kobj, 1, grp);
296 * @grp: group to remove
302 const struct attribute_group *grp)
307 if (grp->name) {
308 kn = kernfs_find_and_get(parent, grp->name);
311 grp->name, kobject_name(kobj));
319 remove_files(kn, grp);
320 if (grp->name)
350 * @grp: The files to create and the attribute group they belong to.
357 const struct attribute_group *grp)
366 parent = kernfs_find_and_get(kobj->sd, grp->name);
372 for ((i = 0, attr = grp->attrs); *attr && !error; (++i, ++attr))
388 * @grp: The files to remove and the attribute group they belong to.
391 const struct attribute_group *grp)
396 parent = kernfs_find_and_get(kobj->sd, grp->name);
398 for (attr = grp->attrs; *attr; ++attr)
499 const struct attribute_group *grp,
505 if (grp->attrs) {
508 for (attr = grp->attrs; *attr; attr++) {
520 if (grp->bin_attrs) {
523 for (bin_attr = grp->bin_attrs; *bin_attr; bin_attr++) {
541 * @grp: The attribute group.
548 const struct attribute_group *grp, kuid_t kuid,
562 if (grp->name) {
563 grp_kn = kernfs_find_and_get(kobj->sd, grp->name);
573 error = sysfs_group_attrs_change_owner(grp_kn, grp, &newattrs);