Lines Matching refs:kn

26 static const struct sysfs_ops *sysfs_file_ops(struct kernfs_node *kn)
28 struct kobject *kobj = kn->parent->priv;
30 if (kn->flags & KERNFS_LOCKDEP)
31 lockdep_assert_held(kn);
43 struct kobject *kobj = of->kn->parent->priv;
44 const struct sysfs_ops *ops = sysfs_file_ops(of->kn);
61 count = ops->show(kobj, of->kn->priv, buf);
83 struct bin_attribute *battr = of->kn->priv;
84 struct kobject *kobj = of->kn->parent->priv;
107 const struct sysfs_ops *ops = sysfs_file_ops(of->kn);
108 struct kobject *kobj = of->kn->parent->priv;
117 len = ops->show(kobj, of->kn->priv, buf);
133 const struct sysfs_ops *ops = sysfs_file_ops(of->kn);
134 struct kobject *kobj = of->kn->parent->priv;
139 return ops->store(kobj, of->kn->priv, buf, count);
146 struct bin_attribute *battr = of->kn->priv;
147 struct kobject *kobj = of->kn->parent->priv;
167 struct bin_attribute *battr = of->kn->priv;
168 struct kobject *kobj = of->kn->parent->priv;
175 struct kernfs_node *kn = kobj->sd, *tmp;
177 if (kn && dir)
178 kn = kernfs_find_and_get(kn, dir);
180 kernfs_get(kn);
182 if (kn && attr) {
183 tmp = kernfs_find_and_get(kn, attr);
184 kernfs_put(kn);
185 kn = tmp;
188 if (kn) {
189 kernfs_notify(kn);
190 kernfs_put(kn);
252 struct kernfs_node *kn;
306 kn = __kernfs_create_file(parent, attr->name, mode & 0777, uid, gid,
308 if (IS_ERR(kn)) {
309 if (PTR_ERR(kn) == -EEXIST)
311 return PTR_ERR(kn);
395 struct kernfs_node *kn;
399 kn = kernfs_find_and_get(kobj->sd, attr->name);
400 if (!kn)
403 newattrs.ia_mode = (mode & S_IALLUGO) | (kn->mode & ~S_IALLUGO);
406 rc = kernfs_setattr(kn, &newattrs);
408 kernfs_put(kn);
426 struct kernfs_node *kn;
429 kn = kernfs_find_and_get(kobj->sd, attr->name);
430 if (kn)
431 kernfs_break_active_protection(kn);
434 return kn;
440 * @kn: Pointer returned by sysfs_break_active_protection().
446 * sysfs_unbreak_active_protection() calls, it is not safe to access @kn after
449 void sysfs_unbreak_active_protection(struct kernfs_node *kn)
451 struct kobject *kobj = kn->parent->priv;
453 kernfs_unbreak_active_protection(kn);
454 kernfs_put(kn);
486 struct kernfs_node *kn;
489 kn = kernfs_find_and_get(parent, attr->name);
490 if (WARN_ON_ONCE(!kn))
493 ret = kernfs_remove_self(kn);
495 kernfs_put(kn);
566 static int internal_change_owner(struct kernfs_node *kn, kuid_t kuid,
574 return kernfs_setattr(kn, &newattrs);
594 struct kernfs_node *kn = NULL;
601 kn = kernfs_find_and_get_ns(kobj->sd, name, targ->sd->ns);
602 if (!kn)
606 if (kernfs_type(kn) != KERNFS_LINK)
608 if (kn->symlink.target_kn->priv != targ)
611 error = internal_change_owner(kn, kuid, kgid);
614 kernfs_put(kn);
633 struct kernfs_node *kn;
642 kn = kernfs_find_and_get(kobj->sd, name);
643 if (!kn)
646 error = internal_change_owner(kn, kuid, kgid);
648 kernfs_put(kn);