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);
59 count = ops->show(kobj, of->kn->priv, buf);
80 struct bin_attribute *battr = of->kn->priv;
81 struct kobject *kobj = of->kn->parent->priv;
104 const struct sysfs_ops *ops = sysfs_file_ops(of->kn);
105 struct kobject *kobj = of->kn->parent->priv;
114 len = ops->show(kobj, of->kn->priv, buf);
130 const struct sysfs_ops *ops = sysfs_file_ops(of->kn);
131 struct kobject *kobj = of->kn->parent->priv;
136 return ops->store(kobj, of->kn->priv, buf, count);
143 struct bin_attribute *battr = of->kn->priv;
144 struct kobject *kobj = of->kn->parent->priv;
164 struct bin_attribute *battr = of->kn->priv;
165 struct kobject *kobj = of->kn->parent->priv;
172 struct bin_attribute *battr = of->kn->priv;
182 struct kernfs_node *kn = kobj->sd, *tmp;
184 if (kn && dir)
185 kn = kernfs_find_and_get(kn, dir);
187 kernfs_get(kn);
189 if (kn && attr) {
190 tmp = kernfs_find_and_get(kn, attr);
191 kernfs_put(kn);
192 kn = tmp;
195 if (kn) {
196 kernfs_notify(kn);
197 kernfs_put(kn);
262 struct kernfs_node *kn;
294 kn = __kernfs_create_file(parent, attr->name, mode & 0777, uid, gid,
296 if (IS_ERR(kn)) {
297 if (PTR_ERR(kn) == -EEXIST)
299 return PTR_ERR(kn);
311 struct kernfs_node *kn;
329 kn = __kernfs_create_file(parent, attr->name, mode & 0777, uid, gid,
331 if (IS_ERR(kn)) {
332 if (PTR_ERR(kn) == -EEXIST)
334 return PTR_ERR(kn);
416 struct kernfs_node *kn;
420 kn = kernfs_find_and_get(kobj->sd, attr->name);
421 if (!kn)
424 newattrs.ia_mode = (mode & S_IALLUGO) | (kn->mode & ~S_IALLUGO);
427 rc = kernfs_setattr(kn, &newattrs);
429 kernfs_put(kn);
447 struct kernfs_node *kn;
450 kn = kernfs_find_and_get(kobj->sd, attr->name);
451 if (kn)
452 kernfs_break_active_protection(kn);
453 return kn;
459 * @kn: Pointer returned by sysfs_break_active_protection().
465 * sysfs_unbreak_active_protection() calls, it is not safe to access @kn after
468 void sysfs_unbreak_active_protection(struct kernfs_node *kn)
470 struct kobject *kobj = kn->parent->priv;
472 kernfs_unbreak_active_protection(kn);
473 kernfs_put(kn);
505 struct kernfs_node *kn;
508 kn = kernfs_find_and_get(parent, attr->name);
509 if (WARN_ON_ONCE(!kn))
512 ret = kernfs_remove_self(kn);
514 kernfs_put(kn);
585 static int internal_change_owner(struct kernfs_node *kn, kuid_t kuid,
593 return kernfs_setattr(kn, &newattrs);
613 struct kernfs_node *kn = NULL;
620 kn = kernfs_find_and_get_ns(kobj->sd, name, targ->sd->ns);
621 if (!kn)
625 if (kernfs_type(kn) != KERNFS_LINK)
627 if (kn->symlink.target_kn->priv != targ)
630 error = internal_change_owner(kn, kuid, kgid);
633 kernfs_put(kn);
652 struct kernfs_node *kn;
661 kn = kernfs_find_and_get(kobj->sd, name);
662 if (!kn)
665 error = internal_change_owner(kn, kuid, kgid);
667 kernfs_put(kn);