Lines Matching defs:kn
278 static int rdtgroup_kn_set_ugid(struct kernfs_node *kn)
288 return kernfs_setattr(kn, &iattr);
293 struct kernfs_node *kn;
296 kn = __kernfs_create_file(parent_kn, rft->name, rft->mode,
299 if (IS_ERR(kn))
300 return PTR_ERR(kn);
302 ret = rdtgroup_kn_set_ugid(kn);
304 kernfs_remove(kn);
314 struct rftype *rft = of->kn->priv;
324 struct rftype *rft = of->kn->priv;
345 struct rftype *rft = of->kn->priv;
357 rdtgrp = rdtgroup_kn_lock_live(of->kn);
378 rdtgroup_kn_unlock(of->kn);
533 rdtgrp = rdtgroup_kn_lock_live(of->kn);
574 rdtgroup_kn_unlock(of->kn);
596 kernfs_put(rdtgrp->kn);
777 rdtgrp = rdtgroup_kn_lock_live(of->kn);
779 rdtgroup_kn_unlock(of->kn);
814 rdtgroup_kn_unlock(of->kn);
841 rdtgrp = rdtgroup_kn_lock_live(of->kn);
846 rdtgroup_kn_unlock(of->kn);
857 rdtgrp = rdtgroup_kn_lock_live(of->kn);
862 rdtgroup_kn_unlock(of->kn);
873 rdtgrp = rdtgroup_kn_lock_live(of->kn);
878 rdtgroup_kn_unlock(of->kn);
944 rdt_kn_name(rdtg->kn));
951 seq_printf(s, "%s", rdt_kn_name(crg->kn));
984 static void *rdt_kn_parent_priv(struct kernfs_node *kn)
991 return rcu_dereference(kn->__parent)->priv;
997 struct resctrl_schema *s = rdt_kn_parent_priv(of->kn);
1006 struct resctrl_schema *s = rdt_kn_parent_priv(of->kn);
1016 struct resctrl_schema *s = rdt_kn_parent_priv(of->kn);
1026 struct resctrl_schema *s = rdt_kn_parent_priv(of->kn);
1050 struct resctrl_schema *s = rdt_kn_parent_priv(of->kn);
1132 struct resctrl_schema *s = rdt_kn_parent_priv(of->kn);
1142 struct rdt_resource *r = rdt_kn_parent_priv(of->kn);
1152 struct rdt_resource *r = rdt_kn_parent_priv(of->kn);
1167 struct resctrl_schema *s = rdt_kn_parent_priv(of->kn);
1177 struct resctrl_schema *s = rdt_kn_parent_priv(of->kn);
1195 struct resctrl_schema *s = rdt_kn_parent_priv(of->kn);
1241 rdtgrp = rdtgroup_kn_lock_live(of->kn);
1243 rdtgroup_kn_unlock(of->kn);
1249 rdtgroup_kn_unlock(of->kn);
1269 struct resctrl_schema *s = rdt_kn_parent_priv(of->kn);
1431 rdtgrp = rdtgroup_kn_lock_live(of->kn);
1433 rdtgroup_kn_unlock(of->kn);
1484 rdtgroup_kn_unlock(of->kn);
1556 rdtgrp = rdtgroup_kn_lock_live(of->kn);
1558 rdtgroup_kn_unlock(of->kn);
1610 rdtgroup_kn_unlock(of->kn);
1654 struct rdt_resource *r = rdt_kn_parent_priv(of->kn);
1664 struct rdt_resource *r = rdt_kn_parent_priv(of->kn);
1758 struct rdt_resource *r = rdt_kn_parent_priv(of->kn);
1784 struct rdt_resource *r = rdt_kn_parent_priv(of->kn);
1996 static int rdtgroup_add_files(struct kernfs_node *kn, unsigned long fflags)
2011 ret = rdtgroup_add_file(kn, rft);
2022 kernfs_remove_by_name(kn, rft->name);
2094 struct kernfs_node *kn;
2097 kn = kernfs_find_and_get_ns(r->kn, name, NULL);
2098 if (!kn)
2101 switch (kernfs_type(kn)) {
2113 ret = kernfs_setattr(kn, &iattr);
2114 kernfs_put(kn);
2133 struct kernfs_node *kn, *parent;
2145 kn = kernfs_find_and_get_ns(r->kn, name, NULL);
2146 if (!kn)
2149 switch (kernfs_type(kn)) {
2151 parent = kernfs_get_parent(kn);
2166 ret = kernfs_setattr(kn, &iattr);
2167 kernfs_put(kn);
2258 struct kernfs_node *kn;
2262 kn = kernfs_create_dir(parent_kn, name, parent_kn->mode, prgrp);
2263 if (IS_ERR(kn))
2264 return PTR_ERR(kn);
2267 *dest_kn = kn;
2269 ret = rdtgroup_kn_set_ugid(kn);
2273 kernfs_activate(kn);
2278 kernfs_remove(kn);
2365 static struct rdtgroup *kernfs_to_rdtgroup(struct kernfs_node *kn)
2367 if (kernfs_type(kn) == KERNFS_DIR) {
2369 * All the resource directories use "kn->priv"
2374 if (kn == kn_info ||
2375 rcu_access_pointer(kn->__parent) == kn_info)
2378 return kn->priv;
2380 return rdt_kn_parent_priv(kn);
2384 static void rdtgroup_kn_get(struct rdtgroup *rdtgrp, struct kernfs_node *kn)
2387 kernfs_break_active_protection(kn);
2390 static void rdtgroup_kn_put(struct rdtgroup *rdtgrp, struct kernfs_node *kn)
2397 kernfs_unbreak_active_protection(kn);
2400 kernfs_unbreak_active_protection(kn);
2404 struct rdtgroup *rdtgroup_kn_lock_live(struct kernfs_node *kn)
2406 struct rdtgroup *rdtgrp = kernfs_to_rdtgroup(kn);
2411 rdtgroup_kn_get(rdtgrp, kn);
2423 void rdtgroup_kn_unlock(struct kernfs_node *kn)
2425 struct rdtgroup *rdtgrp = kernfs_to_rdtgroup(kn);
2433 rdtgroup_kn_put(rdtgrp, kn);
2623 ret = rdtgroup_add_files(rdtgroup_default.kn, flags);
2627 kernfs_activate(rdtgroup_default.kn);
2629 ret = rdtgroup_create_info_dir(rdtgroup_default.kn);
2634 ret = mongroup_create_dir(rdtgroup_default.kn,
2640 ret = mkdir_mondata_all(rdtgroup_default.kn,
2867 kernfs_remove(rdtgrp->kn);
2945 if (!rdtgroup_default.kn)
2991 struct kernfs_node *kn;
2994 kn = __kernfs_create_file(parent_kn, name, 0444,
2997 if (IS_ERR(kn))
2998 return PTR_ERR(kn);
3000 ret = rdtgroup_kn_set_ugid(kn);
3002 kernfs_remove(kn);
3011 struct kernfs_node *kn;
3013 kn = kernfs_find_and_get(pkn, name);
3014 if (!kn)
3016 kernfs_put(kn);
3018 if (kn->dir.subdirs <= 1)
3019 kernfs_remove(kn);
3021 kernfs_remove_by_name(kn, subname);
3051 static int mon_add_all_files(struct kernfs_node *kn, struct rdt_mon_domain *d,
3069 ret = mon_addfile(kn, mevt->name, priv);
3084 struct kernfs_node *kn, *ckn;
3093 kn = kernfs_find_and_get(parent_kn, name);
3094 if (kn) {
3099 kernfs_put(kn);
3101 kn = kernfs_create_dir(parent_kn, name, parent_kn->mode, prgrp);
3102 if (IS_ERR(kn))
3103 return PTR_ERR(kn);
3105 ret = rdtgroup_kn_set_ugid(kn);
3108 ret = mon_add_all_files(kn, d, r, prgrp, snc_mode);
3115 ckn = kernfs_create_dir(kn, name, parent_kn->mode, prgrp);
3130 kernfs_activate(kn);
3134 kernfs_remove(kn);
3202 struct kernfs_node *kn;
3208 ret = mongroup_create_dir(parent_kn, prgrp, "mon_data", &kn);
3213 *dest_kn = kn;
3220 ret = mkdir_mondata_subdir_alldom(kn, r, prgrp);
3228 kernfs_remove(kn);
3430 ret = mkdir_mondata_all(rdtgrp->kn, rdtgrp, &rdtgrp->mon.mon_data_kn);
3456 static bool is_mon_groups(struct kernfs_node *kn, const char *name)
3458 return (!strcmp(rdt_kn_name(kn), "mon_groups") &&
3468 struct kernfs_node *kn;
3509 kn = kernfs_create_dir(parent_kn, name, mode, rdtgrp);
3510 if (IS_ERR(kn)) {
3511 ret = PTR_ERR(kn);
3515 rdtgrp->kn = kn;
3518 * kernfs_remove() will drop the reference count on "kn" which
3520 * rdtgroup_kn_unlock(kn) call. Take one extra reference here,
3523 kernfs_get(kn);
3525 ret = rdtgroup_kn_set_ugid(kn);
3539 ret = rdtgroup_add_files(kn, files);
3551 kernfs_put(rdtgrp->kn);
3552 kernfs_remove(rdtgrp->kn);
3562 kernfs_remove(rgrp->kn);
3590 kernfs_activate(rdtgrp->kn);
3611 struct kernfs_node *kn;
3619 kn = rdtgrp->kn;
3634 kernfs_activate(rdtgrp->kn);
3647 ret = mongroup_create_dir(kn, rdtgrp, "mon_groups", NULL);
3683 if (resctrl_arch_alloc_capable() && parent_kn == rdtgroup_default.kn)
3727 kernfs_remove(rdtgrp->kn);
3737 kernfs_remove(rdtgrp->kn);
3779 static struct kernfs_node *rdt_kn_parent(struct kernfs_node *kn)
3785 return rcu_dereference_check(kn->__parent, lockdep_is_held(&rdtgroup_mutex));
3788 static int rdtgroup_rmdir(struct kernfs_node *kn)
3798 rdtgrp = rdtgroup_kn_lock_live(kn);
3803 parent_kn = rdt_kn_parent(kn);
3812 if (rdtgrp->type == RDTCTRL_GROUP && parent_kn == rdtgroup_default.kn &&
3821 is_mon_groups(parent_kn, rdt_kn_name(kn))) {
3828 rdtgroup_kn_unlock(kn);
3869 static int rdtgroup_rename(struct kernfs_node *kn,
3878 rdtgrp = kernfs_to_rdtgroup(kn);
3884 rdtgroup_kn_get(rdtgrp, kn);
3895 if (kernfs_type(kn) != KERNFS_DIR ||
3907 kn_parent = rdt_kn_parent(kn);
3909 !is_mon_groups(kn_parent, rdt_kn_name(kn))) {
3949 ret = kernfs_rename(kn, new_parent, new_name);
3957 rdtgroup_kn_put(rdtgrp, kn);
3996 rdtgroup_default.kn = kernfs_root_to_node(rdt_root);
4006 rdtgroup_default.kn = NULL;