/kernel/linux/linux-6.6/fs/kernfs/ |
H A D | dir.c | 20 static DEFINE_RWLOCK(kernfs_rename_lock); /* kn->parent and ->name */ 34 static bool __kernfs_active(struct kernfs_node *kn) in __kernfs_active() argument 36 return atomic_read(&kn->active) >= 0; in __kernfs_active() 39 static bool kernfs_active(struct kernfs_node *kn) in kernfs_active() argument 41 lockdep_assert_held(&kernfs_root(kn)->kernfs_rwsem); in kernfs_active() 42 return __kernfs_active(kn); in kernfs_active() 45 static bool kernfs_lockdep(struct kernfs_node *kn) in kernfs_lockdep() argument 48 return kn->flags & KERNFS_LOCKDEP; in kernfs_lockdep() 54 static int kernfs_name_locked(struct kernfs_node *kn, char *buf, size_t buflen) in kernfs_name_locked() argument 56 if (!kn) in kernfs_name_locked() 138 struct kernfs_node *kn, *common; kernfs_path_from_node_locked() local 194 kernfs_name(struct kernfs_node *kn, char *buf, size_t buflen) kernfs_name() argument 240 pr_cont_kernfs_name(struct kernfs_node *kn) pr_cont_kernfs_name() argument 258 pr_cont_kernfs_path(struct kernfs_node *kn) pr_cont_kernfs_path() argument 292 kernfs_get_parent(struct kernfs_node *kn) kernfs_get_parent() argument 328 kernfs_name_compare(unsigned int hash, const char *name, const void *ns, const struct kernfs_node *kn) kernfs_name_compare() argument 361 kernfs_link_sibling(struct kernfs_node *kn) kernfs_link_sibling() argument 408 kernfs_unlink_sibling(struct kernfs_node *kn) kernfs_unlink_sibling() argument 434 kernfs_get_active(struct kernfs_node *kn) kernfs_get_active() argument 454 kernfs_put_active(struct kernfs_node *kn) kernfs_put_active() argument 523 kernfs_get(struct kernfs_node *kn) kernfs_get() argument 538 kernfs_put(struct kernfs_node *kn) kernfs_put() argument 607 struct kernfs_node *kn; __kernfs_new_node() local 677 struct kernfs_node *kn; kernfs_new_node() local 714 struct kernfs_node *kn; kernfs_find_and_get_node_by_id() local 761 kernfs_add_one(struct kernfs_node *kn) kernfs_add_one() argument 846 struct kernfs_node *kn; kernfs_find_ns() local 906 struct kernfs_node *kn; kernfs_find_and_get_ns() local 932 struct kernfs_node *kn; kernfs_walk_and_get_ns() local 956 struct kernfs_node *kn; kernfs_create_root() local 1048 struct kernfs_node *kn; kernfs_create_dir_ns() local 1080 struct kernfs_node *kn; kernfs_create_empty_dir() local 1105 struct kernfs_node *kn; kernfs_dop_revalidate() local 1185 struct kernfs_node *kn; kernfs_iop_lookup() local 1245 struct kernfs_node *kn = kernfs_dentry_node(dentry); kernfs_iop_rmdir() local 1266 struct kernfs_node *kn = kernfs_dentry_node(old_dentry); kernfs_iop_rename() local 1361 kernfs_activate_one(struct kernfs_node *kn) kernfs_activate_one() argument 1389 kernfs_activate(struct kernfs_node *kn) kernfs_activate() argument 1415 kernfs_show(struct kernfs_node *kn, bool show) kernfs_show() argument 1438 __kernfs_remove(struct kernfs_node *kn) __kernfs_remove() argument 1509 kernfs_remove(struct kernfs_node *kn) kernfs_remove() argument 1537 kernfs_break_active_protection(struct kernfs_node *kn) kernfs_break_active_protection() argument 1561 kernfs_unbreak_active_protection(struct kernfs_node *kn) kernfs_unbreak_active_protection() argument 1605 kernfs_remove_self(struct kernfs_node *kn) kernfs_remove_self() argument 1670 struct kernfs_node *kn; kernfs_remove_by_name_ns() local 1706 kernfs_rename_ns(struct kernfs_node *kn, struct kernfs_node *new_parent, const char *new_name, const void *new_ns) kernfs_rename_ns() argument [all...] |
H A D | symlink.c | 29 struct kernfs_node *kn; in kernfs_create_link() local 39 kn = kernfs_new_node(parent, name, S_IFLNK|0777, uid, gid, KERNFS_LINK); in kernfs_create_link() 40 if (!kn) in kernfs_create_link() 44 kn->ns = target->ns; in kernfs_create_link() 45 kn->symlink.target_kn = target; in kernfs_create_link() 48 error = kernfs_add_one(kn); in kernfs_create_link() 50 return kn; in kernfs_create_link() 52 kernfs_put(kn); in kernfs_create_link() 59 struct kernfs_node *base, *kn; in kernfs_get_target_path() local 66 kn in kernfs_get_target_path() 113 struct kernfs_node *kn = inode->i_private; kernfs_getlink() local [all...] |
H A D | inode.c | 27 static struct kernfs_iattrs *__kernfs_iattrs(struct kernfs_node *kn, int alloc) in __kernfs_iattrs() argument 34 if (kn->iattr || !alloc) in __kernfs_iattrs() 37 kn->iattr = kmem_cache_zalloc(kernfs_iattrs_cache, GFP_KERNEL); in __kernfs_iattrs() 38 if (!kn->iattr) in __kernfs_iattrs() 42 kn->iattr->ia_uid = GLOBAL_ROOT_UID; in __kernfs_iattrs() 43 kn->iattr->ia_gid = GLOBAL_ROOT_GID; in __kernfs_iattrs() 45 ktime_get_real_ts64(&kn->iattr->ia_atime); in __kernfs_iattrs() 46 kn->iattr->ia_mtime = kn->iattr->ia_atime; in __kernfs_iattrs() 47 kn in __kernfs_iattrs() 58 kernfs_iattrs(struct kernfs_node *kn) kernfs_iattrs() argument 63 kernfs_iattrs_noalloc(struct kernfs_node *kn) kernfs_iattrs_noalloc() argument 68 __kernfs_setattr(struct kernfs_node *kn, const struct iattr *iattr) __kernfs_setattr() argument 99 kernfs_setattr(struct kernfs_node *kn, const struct iattr *iattr) kernfs_setattr() argument 114 struct kernfs_node *kn = inode->i_private; kernfs_iop_setattr() local 141 struct kernfs_node *kn = kernfs_dentry_node(dentry); kernfs_iop_listxattr() local 167 kernfs_refresh_inode(struct kernfs_node *kn, struct inode *inode) kernfs_refresh_inode() argument 188 struct kernfs_node *kn = inode->i_private; kernfs_iop_getattr() local 199 kernfs_init_inode(struct kernfs_node *kn, struct inode *inode) kernfs_init_inode() argument 247 kernfs_get_inode(struct super_block *sb, struct kernfs_node *kn) kernfs_get_inode() argument 267 struct kernfs_node *kn = inode->i_private; kernfs_evict_inode() local 277 struct kernfs_node *kn; kernfs_iop_permission() local 295 kernfs_xattr_get(struct kernfs_node *kn, const char *name, void *value, size_t size) kernfs_xattr_get() argument 305 kernfs_xattr_set(struct kernfs_node *kn, const char *name, const void *value, size_t size, int flags) kernfs_xattr_set() argument 326 struct kernfs_node *kn = inode->i_private; kernfs_vfs_xattr_get() local 338 struct kernfs_node *kn = inode->i_private; kernfs_vfs_xattr_set() local 343 kernfs_vfs_user_xattr_add(struct kernfs_node *kn, const char *full_name, struct simple_xattrs *xattrs, const void *value, size_t size, int flags) kernfs_vfs_user_xattr_add() argument 382 kernfs_vfs_user_xattr_rm(struct kernfs_node *kn, const char *full_name, struct simple_xattrs *xattrs, const void *value, size_t size, int flags) kernfs_vfs_user_xattr_rm() argument 411 struct kernfs_node *kn = inode->i_private; kernfs_vfs_user_xattr_set() local [all...] |
H A D | file.c | 43 static inline struct mutex *kernfs_open_file_mutex_ptr(struct kernfs_node *kn) in kernfs_open_file_mutex_ptr() argument 45 int idx = hash_ptr(kn, NR_KERNFS_LOCK_BITS); in kernfs_open_file_mutex_ptr() 50 static inline struct mutex *kernfs_open_file_mutex_lock(struct kernfs_node *kn) in kernfs_open_file_mutex_lock() argument 54 lock = kernfs_open_file_mutex_ptr(kn); in kernfs_open_file_mutex_lock() 69 return rcu_dereference_protected(of->kn->attr.open, in of_on() 74 * kernfs_deref_open_node_locked - Get kernfs_open_node corresponding to @kn 76 * @kn: target kernfs_node. 78 * Fetch and return ->attr.open of @kn when caller holds the 79 * kernfs_open_file_mutex_ptr(kn). 81 * Update of ->attr.open happens under kernfs_open_file_mutex_ptr(kn) 91 kernfs_deref_open_node_locked(struct kernfs_node *kn) kernfs_deref_open_node_locked() argument 106 kernfs_ops(struct kernfs_node *kn) kernfs_ops() argument 561 kernfs_get_open_node(struct kernfs_node *kn, struct kernfs_open_file *of) kernfs_get_open_node() argument 605 kernfs_unlink_open_file(struct kernfs_node *kn, struct kernfs_open_file *of, bool open_failed) kernfs_unlink_open_file() argument 641 struct kernfs_node *kn = inode->i_private; kernfs_fop_open() local 768 kernfs_release_file(struct kernfs_node *kn, struct kernfs_open_file *of) kernfs_release_file() argument 794 struct kernfs_node *kn = inode->i_private; kernfs_fop_release() local 813 kernfs_should_drain_open_files(struct kernfs_node *kn) kernfs_should_drain_open_files() argument 832 kernfs_drain_open_files(struct kernfs_node *kn) kernfs_drain_open_files() argument 891 struct kernfs_node *kn = kernfs_dentry_node(filp->f_path.dentry); kernfs_fop_poll() local 908 struct kernfs_node *kn; kernfs_notify_workfn() local 975 kernfs_notify(struct kernfs_node *kn) kernfs_notify() argument 1041 struct kernfs_node *kn; __kernfs_create_file() local [all...] |
H A D | kernfs-internal.h | 36 struct kernfs_node *kn; member 61 * @kn: kernfs_node of interest 63 * Return: the kernfs_root @kn belongs to. 65 static inline struct kernfs_root *kernfs_root(struct kernfs_node *kn) in kernfs_root() argument 68 if (kn->parent) in kernfs_root() 69 kn = kn->parent; in kernfs_root() 70 return kn->dir.root; in kernfs_root() 140 int __kernfs_setattr(struct kernfs_node *kn, const struct iattr *iattr); 149 struct kernfs_node *kernfs_get_active(struct kernfs_node *kn); [all...] |
H A D | mount.c | 69 struct kernfs_node *kn = inode->i_private; in kernfs_encode_fh() local 77 *(u64 *)fh = kn->id; in kernfs_encode_fh() 86 struct kernfs_node *kn; in __kernfs_fh_to_dentry() local 111 kn = kernfs_find_and_get_node_by_id(info->root, id); in __kernfs_fh_to_dentry() 112 if (!kn) in __kernfs_fh_to_dentry() 118 parent = kernfs_get_parent(kn); in __kernfs_fh_to_dentry() 119 kernfs_put(kn); in __kernfs_fh_to_dentry() 120 kn = parent; in __kernfs_fh_to_dentry() 121 if (!kn) in __kernfs_fh_to_dentry() 125 inode = kernfs_get_inode(sb, kn); in __kernfs_fh_to_dentry() 149 struct kernfs_node *kn = kernfs_dentry_node(child); kernfs_get_parent_dentry() local 207 kernfs_node_dentry(struct kernfs_node *kn, struct super_block *sb) kernfs_node_dentry() argument [all...] |
/kernel/linux/linux-5.10/fs/kernfs/ |
H A D | dir.c | 21 static DEFINE_SPINLOCK(kernfs_rename_lock); /* kn->parent and ->name */ 35 static bool kernfs_active(struct kernfs_node *kn) in kernfs_active() argument 38 return atomic_read(&kn->active) >= 0; in kernfs_active() 41 static bool kernfs_lockdep(struct kernfs_node *kn) in kernfs_lockdep() argument 44 return kn->flags & KERNFS_LOCKDEP; in kernfs_lockdep() 50 static int kernfs_name_locked(struct kernfs_node *kn, char *buf, size_t buflen) in kernfs_name_locked() argument 52 if (!kn) in kernfs_name_locked() 55 return strlcpy(buf, kn->parent ? kn->name : "/", buflen); in kernfs_name_locked() 79 da = kernfs_depth(ra->kn, in kernfs_common_ancestor() 134 struct kernfs_node *kn, *common; kernfs_path_from_node_locked() local 191 kernfs_name(struct kernfs_node *kn, char *buf, size_t buflen) kernfs_name() argument 237 pr_cont_kernfs_name(struct kernfs_node *kn) pr_cont_kernfs_name() argument 255 pr_cont_kernfs_path(struct kernfs_node *kn) pr_cont_kernfs_path() argument 287 kernfs_get_parent(struct kernfs_node *kn) kernfs_get_parent() argument 323 kernfs_name_compare(unsigned int hash, const char *name, const void *ns, const struct kernfs_node *kn) kernfs_name_compare() argument 356 kernfs_link_sibling(struct kernfs_node *kn) kernfs_link_sibling() argument 398 kernfs_unlink_sibling(struct kernfs_node *kn) kernfs_unlink_sibling() argument 421 kernfs_get_active(struct kernfs_node *kn) kernfs_get_active() argument 441 kernfs_put_active(struct kernfs_node *kn) kernfs_put_active() argument 490 kernfs_drain_open_files(kn); global() variable 499 kernfs_get(struct kernfs_node *kn) kernfs_get() argument 514 kernfs_put(struct kernfs_node *kn) kernfs_put() argument 561 struct kernfs_node *kn; kernfs_dop_revalidate() local 627 struct kernfs_node *kn; __kernfs_new_node() local 697 struct kernfs_node *kn; kernfs_new_node() local 734 struct kernfs_node *kn; kernfs_find_and_get_node_by_id() local 782 kernfs_add_one(struct kernfs_node *kn) kernfs_add_one() argument 865 struct kernfs_node *kn; kernfs_find_ns() local 924 struct kernfs_node *kn; kernfs_find_and_get_ns() local 948 struct kernfs_node *kn; kernfs_walk_and_get_ns() local 971 struct kernfs_node *kn; kernfs_create_root() local 1043 struct kernfs_node *kn; kernfs_create_dir_ns() local 1075 struct kernfs_node *kn; kernfs_create_empty_dir() local 1104 struct kernfs_node *kn; kernfs_iop_lookup() local 1156 struct kernfs_node *kn = kernfs_dentry_node(dentry); kernfs_iop_rmdir() local 1176 struct kernfs_node *kn = kernfs_dentry_node(old_dentry); kernfs_iop_rename() local 1282 kernfs_activate(struct kernfs_node *kn) kernfs_activate() argument 1303 __kernfs_remove(struct kernfs_node *kn) __kernfs_remove() argument 1375 kernfs_remove(struct kernfs_node *kn) kernfs_remove() argument 1396 kernfs_break_active_protection(struct kernfs_node *kn) kernfs_break_active_protection() argument 1420 kernfs_unbreak_active_protection(struct kernfs_node *kn) kernfs_unbreak_active_protection() argument 1462 kernfs_remove_self(struct kernfs_node *kn) kernfs_remove_self() argument 1525 struct kernfs_node *kn; kernfs_remove_by_name_ns() local 1557 kernfs_rename_ns(struct kernfs_node *kn, struct kernfs_node *new_parent, const char *new_name, const void *new_ns) kernfs_rename_ns() argument 1627 dt_type(struct kernfs_node *kn) dt_type() argument [all...] |
H A D | symlink.c | 29 struct kernfs_node *kn; in kernfs_create_link() local 39 kn = kernfs_new_node(parent, name, S_IFLNK|S_IRWXUGO, uid, gid, in kernfs_create_link() 41 if (!kn) in kernfs_create_link() 45 kn->ns = target->ns; in kernfs_create_link() 46 kn->symlink.target_kn = target; in kernfs_create_link() 49 error = kernfs_add_one(kn); in kernfs_create_link() 51 return kn; in kernfs_create_link() 53 kernfs_put(kn); in kernfs_create_link() 60 struct kernfs_node *base, *kn; in kernfs_get_target_path() local 67 kn in kernfs_get_target_path() 114 struct kernfs_node *kn = inode->i_private; kernfs_getlink() local [all...] |
H A D | inode.c | 33 static struct kernfs_iattrs *__kernfs_iattrs(struct kernfs_node *kn, int alloc) in __kernfs_iattrs() argument 40 if (kn->iattr || !alloc) in __kernfs_iattrs() 43 kn->iattr = kmem_cache_zalloc(kernfs_iattrs_cache, GFP_KERNEL); in __kernfs_iattrs() 44 if (!kn->iattr) in __kernfs_iattrs() 48 kn->iattr->ia_uid = GLOBAL_ROOT_UID; in __kernfs_iattrs() 49 kn->iattr->ia_gid = GLOBAL_ROOT_GID; in __kernfs_iattrs() 51 ktime_get_real_ts64(&kn->iattr->ia_atime); in __kernfs_iattrs() 52 kn->iattr->ia_mtime = kn->iattr->ia_atime; in __kernfs_iattrs() 53 kn in __kernfs_iattrs() 64 kernfs_iattrs(struct kernfs_node *kn) kernfs_iattrs() argument 69 kernfs_iattrs_noalloc(struct kernfs_node *kn) kernfs_iattrs_noalloc() argument 74 __kernfs_setattr(struct kernfs_node *kn, const struct iattr *iattr) __kernfs_setattr() argument 105 kernfs_setattr(struct kernfs_node *kn, const struct iattr *iattr) kernfs_setattr() argument 118 struct kernfs_node *kn = inode->i_private; kernfs_iop_setattr() local 143 struct kernfs_node *kn = kernfs_dentry_node(dentry); kernfs_iop_listxattr() local 170 kernfs_refresh_inode(struct kernfs_node *kn, struct inode *inode) kernfs_refresh_inode() argument 190 struct kernfs_node *kn = inode->i_private; kernfs_iop_getattr() local 200 kernfs_init_inode(struct kernfs_node *kn, struct inode *inode) kernfs_init_inode() argument 248 kernfs_get_inode(struct super_block *sb, struct kernfs_node *kn) kernfs_get_inode() argument 268 struct kernfs_node *kn = inode->i_private; kernfs_evict_inode() local 277 struct kernfs_node *kn; kernfs_iop_permission() local 291 kernfs_xattr_get(struct kernfs_node *kn, const char *name, void *value, size_t size) kernfs_xattr_get() argument 301 kernfs_xattr_set(struct kernfs_node *kn, const char *name, const void *value, size_t size, int flags) kernfs_xattr_set() argument 316 struct kernfs_node *kn = inode->i_private; kernfs_vfs_xattr_get() local 327 struct kernfs_node *kn = inode->i_private; kernfs_vfs_xattr_set() local 332 kernfs_vfs_user_xattr_add(struct kernfs_node *kn, const char *full_name, struct simple_xattrs *xattrs, const void *value, size_t size, int flags) kernfs_vfs_user_xattr_add() argument 366 kernfs_vfs_user_xattr_rm(struct kernfs_node *kn, const char *full_name, struct simple_xattrs *xattrs, const void *value, size_t size, int flags) kernfs_vfs_user_xattr_rm() argument 393 struct kernfs_node *kn = inode->i_private; kernfs_vfs_user_xattr_set() local [all...] |
H A D | file.c | 64 static const struct kernfs_ops *kernfs_ops(struct kernfs_node *kn) in kernfs_ops() argument 66 if (kn->flags & KERNFS_LOCKDEP) in kernfs_ops() 67 lockdep_assert_held(kn); in kernfs_ops() 68 return kn->attr.ops; in kernfs_ops() 96 const struct kernfs_ops *ops = kernfs_ops(of->kn); in kernfs_seq_stop_active() 100 kernfs_put_active(of->kn); in kernfs_seq_stop_active() 113 if (!kernfs_get_active(of->kn)) in kernfs_seq_start() 116 ops = kernfs_ops(of->kn); in kernfs_seq_start() 135 const struct kernfs_ops *ops = kernfs_ops(of->kn); in kernfs_seq_next() 166 of->event = atomic_read(&of->kn in kernfs_seq_show() 523 kernfs_get_open_node(struct kernfs_node *kn, struct kernfs_open_file *of) kernfs_get_open_node() argument 574 kernfs_put_open_node(struct kernfs_node *kn, struct kernfs_open_file *of) kernfs_put_open_node() argument 599 struct kernfs_node *kn = inode->i_private; kernfs_fop_open() local 726 kernfs_release_file(struct kernfs_node *kn, struct kernfs_open_file *of) kernfs_release_file() argument 751 struct kernfs_node *kn = inode->i_private; kernfs_fop_release() local 768 kernfs_drain_open_files(struct kernfs_node *kn) kernfs_drain_open_files() argument 817 struct kernfs_node *kn = kernfs_dentry_node(of->file->f_path.dentry); kernfs_generic_poll() local 831 struct kernfs_node *kn = kernfs_dentry_node(filp->f_path.dentry); kernfs_fop_poll() local 848 struct kernfs_node *kn; kernfs_notify_workfn() local 913 kernfs_notify(struct kernfs_node *kn) kernfs_notify() argument 979 struct kernfs_node *kn; __kernfs_create_file() local [all...] |
H A D | kernfs-internal.h | 40 * @kn: kernfs_node of interest 42 * Return the kernfs_root @kn belongs to. 44 static inline struct kernfs_root *kernfs_root(struct kernfs_node *kn) in kernfs_root() argument 47 if (kn->parent) in kernfs_root() 48 kn = kn->parent; in kernfs_root() 49 return kn->dir.root; in kernfs_root() 97 int __kernfs_setattr(struct kernfs_node *kn, const struct iattr *iattr); 107 struct kernfs_node *kernfs_get_active(struct kernfs_node *kn); 108 void kernfs_put_active(struct kernfs_node *kn); [all...] |
H A D | mount.c | 59 struct kernfs_node *kn = inode->i_private; in kernfs_encode_fh() local 67 *(u64 *)fh = kn->id; in kernfs_encode_fh() 76 struct kernfs_node *kn; in __kernfs_fh_to_dentry() local 101 kn = kernfs_find_and_get_node_by_id(info->root, id); in __kernfs_fh_to_dentry() 102 if (!kn) in __kernfs_fh_to_dentry() 108 parent = kernfs_get_parent(kn); in __kernfs_fh_to_dentry() 109 kernfs_put(kn); in __kernfs_fh_to_dentry() 110 kn = parent; in __kernfs_fh_to_dentry() 111 if (!kn) in __kernfs_fh_to_dentry() 115 inode = kernfs_get_inode(sb, kn); in __kernfs_fh_to_dentry() 139 struct kernfs_node *kn = kernfs_dentry_node(child); kernfs_get_parent_dentry() local 195 kernfs_node_dentry(struct kernfs_node *kn, struct super_block *sb) kernfs_node_dentry() argument [all...] |
/kernel/linux/linux-5.10/include/linux/ |
H A D | kernfs.h | 93 /* children rbtree starts here and goes through kn->rb */ 173 int (*rmdir)(struct kernfs_node *kn); 174 int (*rename)(struct kernfs_node *kn, struct kernfs_node *new_parent, 176 int (*show_path)(struct seq_file *sf, struct kernfs_node *kn, 182 struct kernfs_node *kn; member 199 struct kernfs_node *kn; member 287 static inline enum kernfs_node_type kernfs_type(struct kernfs_node *kn) in kernfs_type() argument 289 return kn->flags & KERNFS_TYPE_MASK; in kernfs_type() 310 static inline ino_t kernfs_ino(struct kernfs_node *kn) in kernfs_ino() argument 312 return kernfs_id_ino(kn in kernfs_ino() 315 kernfs_gen(struct kernfs_node *kn) kernfs_gen() argument 328 kernfs_enable_ns(struct kernfs_node *kn) kernfs_enable_ns() argument 341 kernfs_ns_enabled(struct kernfs_node *kn) kernfs_ns_enabled() argument 415 kernfs_type(struct kernfs_node *kn) kernfs_type() argument 418 kernfs_enable_ns(struct kernfs_node *kn) kernfs_enable_ns() argument 420 kernfs_ns_enabled(struct kernfs_node *kn) kernfs_ns_enabled() argument 423 kernfs_name(struct kernfs_node *kn, char *buf, size_t buflen) kernfs_name() argument 426 kernfs_path_from_node(struct kernfs_node *root_kn, struct kernfs_node *kn, char *buf, size_t buflen) kernfs_path_from_node() argument 431 pr_cont_kernfs_name(struct kernfs_node *kn) pr_cont_kernfs_name() argument 432 pr_cont_kernfs_path(struct kernfs_node *kn) pr_cont_kernfs_path() argument 434 kernfs_get_parent(struct kernfs_node *kn) kernfs_get_parent() argument 446 kernfs_get(struct kernfs_node *kn) kernfs_get() argument 447 kernfs_put(struct kernfs_node *kn) kernfs_put() argument 456 kernfs_get_inode(struct super_block *sb, struct kernfs_node *kn) kernfs_get_inode() argument 484 kernfs_activate(struct kernfs_node *kn) kernfs_activate() argument 486 kernfs_remove(struct kernfs_node *kn) kernfs_remove() argument 488 kernfs_remove_self(struct kernfs_node *kn) kernfs_remove_self() argument 491 kernfs_remove_by_name_ns(struct kernfs_node *kn, const char *name, const void *ns) kernfs_remove_by_name_ns() argument 495 kernfs_rename_ns(struct kernfs_node *kn, struct kernfs_node *new_parent, const char *new_name, const void *new_ns) kernfs_rename_ns() argument 500 kernfs_setattr(struct kernfs_node *kn, const struct iattr *iattr) kernfs_setattr() argument 504 kernfs_notify(struct kernfs_node *kn) kernfs_notify() argument 506 kernfs_xattr_get(struct kernfs_node *kn, const char *name, void *value, size_t size) kernfs_xattr_get() argument 510 kernfs_xattr_set(struct kernfs_node *kn, const char *name, const void *value, size_t size, int flags) kernfs_xattr_set() argument 540 kernfs_path(struct kernfs_node *kn, char *buf, size_t buflen) kernfs_path() argument 546 kernfs_find_and_get(struct kernfs_node *kn, const char *name) kernfs_find_and_get() argument 552 kernfs_walk_and_get(struct kernfs_node *kn, const char *path) kernfs_walk_and_get() argument 596 kernfs_rename(struct kernfs_node *kn, struct kernfs_node *new_parent, const char *new_name) kernfs_rename() argument [all...] |
/kernel/linux/linux-6.6/include/linux/ |
H A D | kernfs.h | 155 /* children rbtree starts here and goes through kn->rb */ 240 int (*rmdir)(struct kernfs_node *kn); 241 int (*rename)(struct kernfs_node *kn, struct kernfs_node *new_parent, 243 int (*show_path)(struct seq_file *sf, struct kernfs_node *kn, 251 struct kernfs_node *kn; member 335 static inline enum kernfs_node_type kernfs_type(struct kernfs_node *kn) in kernfs_type() argument 337 return kn->flags & KERNFS_TYPE_MASK; in kernfs_type() 358 static inline ino_t kernfs_ino(struct kernfs_node *kn) in kernfs_ino() argument 360 return kernfs_id_ino(kn->id); in kernfs_ino() 363 static inline ino_t kernfs_gen(struct kernfs_node *kn) in kernfs_gen() argument 376 kernfs_enable_ns(struct kernfs_node *kn) kernfs_enable_ns() argument 389 kernfs_ns_enabled(struct kernfs_node *kn) kernfs_ns_enabled() argument 464 kernfs_type(struct kernfs_node *kn) kernfs_type() argument 467 kernfs_enable_ns(struct kernfs_node *kn) kernfs_enable_ns() argument 469 kernfs_ns_enabled(struct kernfs_node *kn) kernfs_ns_enabled() argument 472 kernfs_name(struct kernfs_node *kn, char *buf, size_t buflen) kernfs_name() argument 475 kernfs_path_from_node(struct kernfs_node *root_kn, struct kernfs_node *kn, char *buf, size_t buflen) kernfs_path_from_node() argument 480 pr_cont_kernfs_name(struct kernfs_node *kn) pr_cont_kernfs_name() argument 481 pr_cont_kernfs_path(struct kernfs_node *kn) pr_cont_kernfs_path() argument 483 kernfs_get_parent(struct kernfs_node *kn) kernfs_get_parent() argument 495 kernfs_get(struct kernfs_node *kn) kernfs_get() argument 496 kernfs_put(struct kernfs_node *kn) kernfs_put() argument 505 kernfs_get_inode(struct super_block *sb, struct kernfs_node *kn) kernfs_get_inode() argument 533 kernfs_activate(struct kernfs_node *kn) kernfs_activate() argument 535 kernfs_remove(struct kernfs_node *kn) kernfs_remove() argument 537 kernfs_remove_self(struct kernfs_node *kn) kernfs_remove_self() argument 540 kernfs_remove_by_name_ns(struct kernfs_node *kn, const char *name, const void *ns) kernfs_remove_by_name_ns() argument 544 kernfs_rename_ns(struct kernfs_node *kn, struct kernfs_node *new_parent, const char *new_name, const void *new_ns) kernfs_rename_ns() argument 549 kernfs_setattr(struct kernfs_node *kn, const struct iattr *iattr) kernfs_setattr() argument 557 kernfs_notify(struct kernfs_node *kn) kernfs_notify() argument 559 kernfs_xattr_get(struct kernfs_node *kn, const char *name, void *value, size_t size) kernfs_xattr_get() argument 563 kernfs_xattr_set(struct kernfs_node *kn, const char *name, const void *value, size_t size, int flags) kernfs_xattr_set() argument 593 kernfs_path(struct kernfs_node *kn, char *buf, size_t buflen) kernfs_path() argument 599 kernfs_find_and_get(struct kernfs_node *kn, const char *name) kernfs_find_and_get() argument 605 kernfs_walk_and_get(struct kernfs_node *kn, const char *path) kernfs_walk_and_get() argument 625 kernfs_rename(struct kernfs_node *kn, struct kernfs_node *new_parent, const char *new_name) kernfs_rename() argument [all...] |
/kernel/linux/linux-6.6/fs/sysfs/ |
H A D | file.c | 26 static const struct sysfs_ops *sysfs_file_ops(struct kernfs_node *kn) in sysfs_file_ops() argument 28 struct kobject *kobj = kn->parent->priv; in sysfs_file_ops() 30 if (kn->flags & KERNFS_LOCKDEP) in sysfs_file_ops() 31 lockdep_assert_held(kn); in sysfs_file_ops() 43 struct kobject *kobj = of->kn->parent->priv; in sysfs_kf_seq_show() 44 const struct sysfs_ops *ops = sysfs_file_ops(of->kn); in sysfs_kf_seq_show() 59 count = ops->show(kobj, of->kn->priv, buf); in sysfs_kf_seq_show() 80 struct bin_attribute *battr = of->kn->priv; in sysfs_kf_bin_read() 81 struct kobject *kobj = of->kn->parent->priv; in sysfs_kf_bin_read() 104 const struct sysfs_ops *ops = sysfs_file_ops(of->kn); in sysfs_kf_read() 182 struct kernfs_node *kn = kobj->sd, *tmp; sysfs_notify() local 262 struct kernfs_node *kn; sysfs_add_file_mode_ns() local 311 struct kernfs_node *kn; sysfs_add_bin_file_mode_ns() local 416 struct kernfs_node *kn; sysfs_chmod_file() local 447 struct kernfs_node *kn; sysfs_break_active_protection() local 468 sysfs_unbreak_active_protection(struct kernfs_node *kn) sysfs_unbreak_active_protection() argument 505 struct kernfs_node *kn; sysfs_remove_file_self() local 585 internal_change_owner(struct kernfs_node *kn, kuid_t kuid, kgid_t kgid) internal_change_owner() argument 613 struct kernfs_node *kn = NULL; sysfs_link_change_owner() local 652 struct kernfs_node *kn; sysfs_file_change_owner() local [all...] |
H A D | dir.c | 42 struct kernfs_node *parent, *kn; in sysfs_create_dir_ns() local 59 kn = kernfs_create_dir_ns(parent, kobject_name(kobj), 0755, uid, gid, in sysfs_create_dir_ns() 61 if (IS_ERR(kn)) { in sysfs_create_dir_ns() 62 if (PTR_ERR(kn) == -EEXIST) in sysfs_create_dir_ns() 64 return PTR_ERR(kn); in sysfs_create_dir_ns() 67 kobj->sd = kn; in sysfs_create_dir_ns() 81 struct kernfs_node *kn = kobj->sd; in sysfs_remove_dir() local 99 if (kn) { in sysfs_remove_dir() 100 WARN_ON_ONCE(kernfs_type(kn) != KERNFS_DIR); in sysfs_remove_dir() 101 kernfs_remove(kn); in sysfs_remove_dir() 120 struct kernfs_node *kn = kobj->sd; sysfs_move_dir_ns() local 136 struct kernfs_node *kn, *parent = parent_kobj->sd; sysfs_create_mount_point() local [all...] |
H A D | symlink.c | 24 struct kernfs_node *kn, *target = NULL; in sysfs_do_create_link_sd() local 44 kn = kernfs_create_link(parent, name, target); in sysfs_do_create_link_sd() 47 if (!IS_ERR(kn)) in sysfs_do_create_link_sd() 50 if (warn && PTR_ERR(kn) == -EEXIST) in sysfs_do_create_link_sd() 52 return PTR_ERR(kn); in sysfs_do_create_link_sd() 57 * @kn: directory we're creating the link in. 61 int sysfs_create_link_sd(struct kernfs_node *kn, struct kobject *target, in sysfs_create_link_sd() argument 64 return sysfs_do_create_link_sd(kn, target, name, 1); in sysfs_create_link_sd() 169 struct kernfs_node *parent, *kn = NULL; in sysfs_rename_link_ns() local 182 kn in sysfs_rename_link_ns() [all...] |
H A D | group.c | 110 struct kernfs_node *kn; in internal_create_group() local 131 kn = kernfs_find_and_get(kobj->sd, grp->name); in internal_create_group() 132 if (!kn) { in internal_create_group() 138 kn = kernfs_create_dir_ns(kobj->sd, grp->name, in internal_create_group() 141 if (IS_ERR(kn)) { in internal_create_group() 142 if (PTR_ERR(kn) == -EEXIST) in internal_create_group() 144 return PTR_ERR(kn); in internal_create_group() 148 kn = kobj->sd; in internal_create_group() 151 kernfs_get(kn); in internal_create_group() 152 error = create_files(kn, kob in internal_create_group() 277 struct kernfs_node *kn; sysfs_remove_group() local 475 struct kernfs_node *kn; sysfs_group_attrs_change_owner() local [all...] |
/kernel/linux/linux-5.10/fs/sysfs/ |
H A D | file.c | 26 static const struct sysfs_ops *sysfs_file_ops(struct kernfs_node *kn) in sysfs_file_ops() argument 28 struct kobject *kobj = kn->parent->priv; in sysfs_file_ops() 30 if (kn->flags & KERNFS_LOCKDEP) in sysfs_file_ops() 31 lockdep_assert_held(kn); in sysfs_file_ops() 43 struct kobject *kobj = of->kn->parent->priv; in sysfs_kf_seq_show() 44 const struct sysfs_ops *ops = sysfs_file_ops(of->kn); in sysfs_kf_seq_show() 61 count = ops->show(kobj, of->kn->priv, buf); in sysfs_kf_seq_show() 83 struct bin_attribute *battr = of->kn->priv; in sysfs_kf_bin_read() 84 struct kobject *kobj = of->kn->parent->priv; in sysfs_kf_bin_read() 107 const struct sysfs_ops *ops = sysfs_file_ops(of->kn); in sysfs_kf_read() 175 struct kernfs_node *kn = kobj->sd, *tmp; sysfs_notify() local 252 struct kernfs_node *kn; sysfs_add_file_mode_ns() local 395 struct kernfs_node *kn; sysfs_chmod_file() local 426 struct kernfs_node *kn; sysfs_break_active_protection() local 449 sysfs_unbreak_active_protection(struct kernfs_node *kn) sysfs_unbreak_active_protection() argument 486 struct kernfs_node *kn; sysfs_remove_file_self() local 566 internal_change_owner(struct kernfs_node *kn, kuid_t kuid, kgid_t kgid) internal_change_owner() argument 594 struct kernfs_node *kn = NULL; sysfs_link_change_owner() local 633 struct kernfs_node *kn; sysfs_file_change_owner() local [all...] |
H A D | dir.c | 42 struct kernfs_node *parent, *kn; in sysfs_create_dir_ns() local 59 kn = kernfs_create_dir_ns(parent, kobject_name(kobj), in sysfs_create_dir_ns() 62 if (IS_ERR(kn)) { in sysfs_create_dir_ns() 63 if (PTR_ERR(kn) == -EEXIST) in sysfs_create_dir_ns() 65 return PTR_ERR(kn); in sysfs_create_dir_ns() 68 kobj->sd = kn; in sysfs_create_dir_ns() 82 struct kernfs_node *kn = kobj->sd; in sysfs_remove_dir() local 100 if (kn) { in sysfs_remove_dir() 101 WARN_ON_ONCE(kernfs_type(kn) != KERNFS_DIR); in sysfs_remove_dir() 102 kernfs_remove(kn); in sysfs_remove_dir() 121 struct kernfs_node *kn = kobj->sd; sysfs_move_dir_ns() local 137 struct kernfs_node *kn, *parent = parent_kobj->sd; sysfs_create_mount_point() local [all...] |
H A D | symlink.c | 24 struct kernfs_node *kn, *target = NULL; in sysfs_do_create_link_sd() local 44 kn = kernfs_create_link(parent, name, target); in sysfs_do_create_link_sd() 47 if (!IS_ERR(kn)) in sysfs_do_create_link_sd() 50 if (warn && PTR_ERR(kn) == -EEXIST) in sysfs_do_create_link_sd() 52 return PTR_ERR(kn); in sysfs_do_create_link_sd() 57 * @kn: directory we're creating the link in. 61 int sysfs_create_link_sd(struct kernfs_node *kn, struct kobject *target, in sysfs_create_link_sd() argument 64 return sysfs_do_create_link_sd(kn, target, name, 1); in sysfs_create_link_sd() 169 struct kernfs_node *parent, *kn = NULL; in sysfs_rename_link_ns() local 182 kn in sysfs_rename_link_ns() [all...] |
H A D | group.c | 111 struct kernfs_node *kn; in internal_create_group() local 130 kn = kernfs_find_and_get(kobj->sd, grp->name); in internal_create_group() 131 if (!kn) { in internal_create_group() 137 kn = kernfs_create_dir_ns(kobj->sd, grp->name, in internal_create_group() 140 if (IS_ERR(kn)) { in internal_create_group() 141 if (PTR_ERR(kn) == -EEXIST) in internal_create_group() 143 return PTR_ERR(kn); in internal_create_group() 147 kn = kobj->sd; in internal_create_group() 148 kernfs_get(kn); in internal_create_group() 149 error = create_files(kn, kob in internal_create_group() 274 struct kernfs_node *kn; sysfs_remove_group() local 472 struct kernfs_node *kn; sysfs_group_attrs_change_owner() local [all...] |
/kernel/linux/linux-6.6/arch/x86/kernel/cpu/resctrl/ |
H A D | rdtgroup.c | 205 static int rdtgroup_kn_set_ugid(struct kernfs_node *kn) in rdtgroup_kn_set_ugid() argument 215 return kernfs_setattr(kn, &iattr); in rdtgroup_kn_set_ugid() 220 struct kernfs_node *kn; in rdtgroup_add_file() local 223 kn = __kernfs_create_file(parent_kn, rft->name, rft->mode, in rdtgroup_add_file() 226 if (IS_ERR(kn)) in rdtgroup_add_file() 227 return PTR_ERR(kn); in rdtgroup_add_file() 229 ret = rdtgroup_kn_set_ugid(kn); in rdtgroup_add_file() 231 kernfs_remove(kn); in rdtgroup_add_file() 241 struct rftype *rft = of->kn->priv; in rdtgroup_seqfile_show() 251 struct rftype *rft = of->kn in rdtgroup_file_write() 1847 rdtgroup_add_files(struct kernfs_node *kn, unsigned long fflags) rdtgroup_add_files() argument 1931 struct kernfs_node *kn; rdtgroup_kn_mode_restrict() local 1970 struct kernfs_node *kn, *parent; rdtgroup_kn_mode_restore() local 2081 struct kernfs_node *kn; mongroup_create_dir() local 2292 kernfs_to_rdtgroup(struct kernfs_node *kn) kernfs_to_rdtgroup() argument 2310 rdtgroup_kn_get(struct rdtgroup *rdtgrp, struct kernfs_node *kn) rdtgroup_kn_get() argument 2316 rdtgroup_kn_put(struct rdtgroup *rdtgrp, struct kernfs_node *kn) rdtgroup_kn_put() argument 2330 rdtgroup_kn_lock_live(struct kernfs_node *kn) rdtgroup_kn_lock_live() argument 2348 rdtgroup_kn_unlock(struct kernfs_node *kn) rdtgroup_kn_unlock() argument 2812 struct kernfs_node *kn; mon_addfile() local 2854 struct kernfs_node *kn; mkdir_mondata_subdir() local 2955 struct kernfs_node *kn; mkdir_mondata_all() local 3175 struct kernfs_node *kn; mkdir_rdt_prepare() local 3311 struct kernfs_node *kn; rdtgroup_mkdir_ctrl_mon() local 3370 is_mon_groups(struct kernfs_node *kn, const char *name) is_mon_groups() argument 3479 rdtgroup_rmdir(struct kernfs_node *kn) rdtgroup_rmdir() argument 3559 rdtgroup_rename(struct kernfs_node *kn, struct kernfs_node *new_parent, const char *new_name) rdtgroup_rename() argument [all...] |
/kernel/linux/linux-5.10/arch/x86/kernel/cpu/resctrl/ |
H A D | rdtgroup.c | 189 static int rdtgroup_kn_set_ugid(struct kernfs_node *kn) in rdtgroup_kn_set_ugid() argument 199 return kernfs_setattr(kn, &iattr); in rdtgroup_kn_set_ugid() 204 struct kernfs_node *kn; in rdtgroup_add_file() local 207 kn = __kernfs_create_file(parent_kn, rft->name, rft->mode, in rdtgroup_add_file() 210 if (IS_ERR(kn)) in rdtgroup_add_file() 211 return PTR_ERR(kn); in rdtgroup_add_file() 213 ret = rdtgroup_kn_set_ugid(kn); in rdtgroup_add_file() 215 kernfs_remove(kn); in rdtgroup_add_file() 225 struct rftype *rft = of->kn->priv; in rdtgroup_seqfile_show() 235 struct rftype *rft = of->kn in rdtgroup_file_write() 1614 rdtgroup_add_files(struct kernfs_node *kn, unsigned long fflags) rdtgroup_add_files() argument 1689 struct kernfs_node *kn; rdtgroup_kn_mode_restrict() local 1728 struct kernfs_node *kn, *parent; rdtgroup_kn_mode_restore() local 1836 struct kernfs_node *kn; mongroup_create_dir() local 2026 kernfs_to_rdtgroup(struct kernfs_node *kn) kernfs_to_rdtgroup() argument 2044 rdtgroup_kn_lock_live(struct kernfs_node *kn) rdtgroup_kn_lock_live() argument 2063 rdtgroup_kn_unlock(struct kernfs_node *kn) rdtgroup_kn_unlock() argument 2443 struct kernfs_node *kn; mon_addfile() local 2487 struct kernfs_node *kn; mkdir_mondata_subdir() local 2591 struct kernfs_node *kn; mkdir_mondata_all() local 2791 struct kernfs_node *kn; mkdir_rdt_prepare() local 2927 struct kernfs_node *kn; rdtgroup_mkdir_ctrl_mon() local 2986 is_mon_groups(struct kernfs_node *kn, const char *name) is_mon_groups() argument 3017 rdtgroup_rmdir_mon(struct kernfs_node *kn, struct rdtgroup *rdtgrp, cpumask_var_t tmpmask) rdtgroup_rmdir_mon() argument 3050 rdtgroup_ctrl_remove(struct kernfs_node *kn, struct rdtgroup *rdtgrp) rdtgroup_ctrl_remove() argument 3060 rdtgroup_rmdir_ctrl(struct kernfs_node *kn, struct rdtgroup *rdtgrp, cpumask_var_t tmpmask) rdtgroup_rmdir_ctrl() argument 3098 rdtgroup_rmdir(struct kernfs_node *kn) rdtgroup_rmdir() argument [all...] |
/kernel/linux/linux-6.6/kernel/cgroup/ |
H A D | cgroup.c | 109 * Protects cgroup_file->kn for !self csses. It synchronizes notifications 636 struct cgroup *cgrp = of->kn->parent->priv; in of_css() 1583 * @kn: the kernfs_node being serviced 1591 void cgroup_kn_unlock(struct kernfs_node *kn) in cgroup_kn_unlock() argument 1595 if (kernfs_type(kn) == KERNFS_DIR) in cgroup_kn_unlock() 1596 cgrp = kn->priv; in cgroup_kn_unlock() 1598 cgrp = kn->parent->priv; in cgroup_kn_unlock() 1602 kernfs_unbreak_active_protection(kn); in cgroup_kn_unlock() 1608 * @kn: the kernfs_node being serviced 1612 * @kn 1623 cgroup_kn_lock_live(struct kernfs_node *kn, bool drain_offline) cgroup_kn_lock_live() argument 4155 cgroup_kn_set_ugid(struct kernfs_node *kn) cgroup_kn_set_ugid() argument 4178 struct kernfs_node *kn; cgroup_add_file() local 4485 struct kernfs_node *kn; cgroup_file_show() local 5577 struct kernfs_node *kn; cgroup_create() local 5940 cgroup_rmdir(struct kernfs_node *kn) cgroup_rmdir() argument 6176 struct kernfs_node *kn; cgroup_path_from_kernfs_id() local 6193 struct kernfs_node *kn; cgroup_get_from_id() local 6767 struct kernfs_node *kn = kernfs_node_from_dentry(dentry); css_tryget_online_from_dir() local 6820 struct kernfs_node *kn; cgroup_get_from_path() local [all...] |