Lines Matching refs:dir

77 	.default_set.dir.header = {
95 static void sysctl_print_dir(struct ctl_dir *dir) in sysctl_print_dir() argument
97 if (dir->header.parent) in sysctl_print_dir()
98 sysctl_print_dir(dir->header.parent); in sysctl_print_dir()
99 pr_cont("%s/", dir->header.ctl_table[0].procname); in sysctl_print_dir()
114 struct ctl_dir *dir, const char *name, int namelen) in find_entry() argument
118 struct rb_node *node = dir->root.rb_node; in find_entry()
224 static int insert_header(struct ctl_dir *dir, struct ctl_table_header *header) in insert_header() argument
227 struct ctl_table_header *dir_h = &dir->header; in insert_header()
238 if (!RB_EMPTY_ROOT(&dir->root)) in insert_header()
244 header->parent = dir; in insert_header()
347 struct ctl_dir *dir, in lookup_entry() argument
354 entry = find_entry(&head, dir, name, namelen); in lookup_entry()
375 static void first_entry(struct ctl_dir *dir, in first_entry() argument
383 ctl_node = first_usable_entry(rb_first(&dir->root)); in first_entry()
504 head = &sysctl_table_root.default_set.dir.header; in grab_header()
508 static struct dentry *proc_sys_lookup(struct inode *dir, struct dentry *dentry, in proc_sys_lookup() argument
511 struct ctl_table_header *head = grab_header(dir); in proc_sys_lookup()
536 inode = proc_sys_make_inode(dir->i_sb, h ? h : head, p); in proc_sys_lookup()
682 struct dentry *child, *dir = file->f_path.dentry; in proc_sys_fill_cache() local
690 qname.hash = full_name_hash(dir, qname.name, qname.len); in proc_sys_fill_cache()
692 child = d_lookup(dir, &qname); in proc_sys_fill_cache()
695 child = d_alloc_parallel(dir, &qname, &wq); in proc_sys_fill_cache()
700 inode = proc_sys_make_inode(dir->d_sb, head, table); in proc_sys_fill_cache()
943 static struct ctl_dir *find_subdir(struct ctl_dir *dir, in find_subdir() argument
949 entry = find_entry(&head, dir, name, namelen); in find_subdir()
977 init_header(&new->header, set->dir.header.root, set, node, table, 1); in new_dir()
994 static struct ctl_dir *get_subdir(struct ctl_dir *dir, in get_subdir() argument
997 struct ctl_table_set *set = dir->header.set; in get_subdir()
1002 subdir = find_subdir(dir, name, namelen); in get_subdir()
1016 subdir = find_subdir(dir, name, namelen); in get_subdir()
1023 err = insert_header(dir, &new->header); in get_subdir()
1033 sysctl_print_dir(dir); in get_subdir()
1037 drop_sysctl_table(&dir->header); in get_subdir()
1044 static struct ctl_dir *xlate_dir(struct ctl_table_set *set, struct ctl_dir *dir) in xlate_dir() argument
1048 if (!dir->header.parent) in xlate_dir()
1049 return &set->dir; in xlate_dir()
1050 parent = xlate_dir(set, dir->header.parent); in xlate_dir()
1053 procname = dir->header.ctl_table[0].procname; in xlate_dir()
1064 struct ctl_dir *dir; in sysctl_follow_link() local
1070 dir = xlate_dir(set, (*phead)->parent); in sysctl_follow_link()
1071 if (IS_ERR(dir)) in sysctl_follow_link()
1072 ret = PTR_ERR(dir); in sysctl_follow_link()
1076 entry = find_entry(&head, dir, procname, strlen(procname)); in sysctl_follow_link()
1163 static struct ctl_table_header *new_links(struct ctl_dir *dir, struct ctl_table_header *head) in new_links() argument
1201 init_header(links, dir->header.root, dir->header.set, node, link_table, in new_links()
1208 static bool get_links(struct ctl_dir *dir, in get_links() argument
1222 link = find_entry(&tmp_head, dir, procname, strlen(procname)); in get_links()
1235 link = find_entry(&tmp_head, dir, procname, strlen(procname)); in get_links()
1283 static struct ctl_dir *sysctl_mkdir_p(struct ctl_dir *dir, const char *path) in sysctl_mkdir_p() argument
1304 dir = get_subdir(dir, name, namelen); in sysctl_mkdir_p()
1305 if (IS_ERR(dir)) in sysctl_mkdir_p()
1308 return dir; in sysctl_mkdir_p()
1364 struct ctl_table_root *root = set->dir.header.root; in __register_sysctl_table()
1366 struct ctl_dir *dir; in __register_sysctl_table() local
1380 dir = &set->dir; in __register_sysctl_table()
1382 dir->header.nreg++; in __register_sysctl_table()
1385 dir = sysctl_mkdir_p(dir, path); in __register_sysctl_table()
1386 if (IS_ERR(dir)) in __register_sysctl_table()
1389 if (insert_header(dir, header)) in __register_sysctl_table()
1392 drop_sysctl_table(&dir->header); in __register_sysctl_table()
1398 drop_sysctl_table(&dir->header); in __register_sysctl_table()
1543 init_header(&set->dir.header, root, set, NULL, root_table, 1); in setup_sysctl_set()
1548 WARN_ON(!RB_EMPTY_ROOT(&set->dir.root)); in retire_sysctl_set()