Lines Matching refs:header

35 	dir->header.ctl_table[0].child = sysctl_mount_point;  in set_empty_dir()
41 dir->header.ctl_table[0].child = NULL; in clear_empty_dir()
61 .default_set.dir.header = {
73 static void drop_sysctl_table(struct ctl_table_header *header);
77 static void put_links(struct ctl_table_header *header);
81 if (dir->header.parent) in sysctl_print_dir()
82 sysctl_print_dir(dir->header.parent); in sysctl_print_dir()
83 pr_cont("%s/", dir->header.ctl_table[0].procname); in sysctl_print_dir()
116 head = ctl_node->header; in find_entry()
150 parent_head = parent_node->header; in insert_entry()
196 node->header = head; in init_header()
207 static int insert_header(struct ctl_dir *dir, struct ctl_table_header *header) in insert_header() argument
213 if (is_empty_dir(&dir->header)) in insert_header()
217 if (header->ctl_table == sysctl_mount_point) { in insert_header()
223 dir->header.nreg++; in insert_header()
224 header->parent = dir; in insert_header()
225 err = insert_links(header); in insert_header()
228 for (entry = header->ctl_table; entry->procname; entry++) { in insert_header()
229 err = insert_entry(header, entry); in insert_header()
235 erase_header(header); in insert_header()
236 put_links(header); in insert_header()
238 if (header->ctl_table == sysctl_mount_point) in insert_header()
240 header->parent = NULL; in insert_header()
241 drop_sysctl_table(&dir->header); in insert_header()
353 if (use_table(ctl_node->header)) in first_usable_entry()
370 head = ctl_node->header; in first_entry()
390 head = ctl_node->header; in next_entry()
468 head = &sysctl_table_root.default_set.dir.header; in grab_header()
487 ctl_dir = container_of(head, struct ctl_dir, header); in proc_sys_lookup()
703 ctl_dir = container_of(head, struct ctl_dir, header); in proc_sys_readdir()
873 return container_of(head, struct ctl_dir, header); in find_subdir()
897 init_header(&new->header, set->dir.header.root, set, node, table); in new_dir()
917 struct ctl_table_set *set = dir->header.set; in get_subdir()
943 err = insert_header(dir, &new->header); in get_subdir()
949 subdir->header.nreg++; in get_subdir()
957 drop_sysctl_table(&dir->header); in get_subdir()
959 drop_sysctl_table(&new->header); in get_subdir()
968 if (!dir->header.parent) in xlate_dir()
970 parent = xlate_dir(set, dir->header.parent); in xlate_dir()
973 procname = dir->header.ctl_table[0].procname; in xlate_dir()
1094 init_header(links, dir->header.root, dir->header.set, node, link_table); in new_links()
1145 core_parent->header.nreg++; in insert_links()
1165 drop_sysctl_table(&core_parent->header); in insert_links()
1215 struct ctl_table_root *root = set->dir.header.root; in __register_sysctl_table()
1216 struct ctl_table_header *header; in __register_sysctl_table() local
1226 header = kzalloc(sizeof(struct ctl_table_header) + in __register_sysctl_table()
1228 if (!header) in __register_sysctl_table()
1231 node = (struct ctl_node *)(header + 1); in __register_sysctl_table()
1232 init_header(header, root, set, node, table); in __register_sysctl_table()
1239 dir->header.nreg++; in __register_sysctl_table()
1261 if (insert_header(dir, header)) in __register_sysctl_table()
1264 drop_sysctl_table(&dir->header); in __register_sysctl_table()
1267 return header; in __register_sysctl_table()
1270 drop_sysctl_table(&dir->header); in __register_sysctl_table()
1273 kfree(header); in __register_sysctl_table()
1364 struct ctl_table_header *header; in register_leaf_sysctl_tables() local
1365 header = __register_sysctl_table(set, path, files); in register_leaf_sysctl_tables()
1366 if (!header) { in register_leaf_sysctl_tables()
1372 header->ctl_table_arg = ctl_table_arg; in register_leaf_sysctl_tables()
1373 **subheader = header; in register_leaf_sysctl_tables()
1418 struct ctl_table_header *header = NULL, **subheaders, **subheader; in __register_sysctl_paths() local
1439 header = __register_sysctl_table(set, new_path, table); in __register_sysctl_paths()
1440 if (header) in __register_sysctl_paths()
1441 header->ctl_table_arg = ctl_table_arg; in __register_sysctl_paths()
1443 header = kzalloc(sizeof(*header) + in __register_sysctl_paths()
1445 if (!header) in __register_sysctl_paths()
1448 subheaders = (struct ctl_table_header **) (header + 1); in __register_sysctl_paths()
1450 header->ctl_table_arg = ctl_table_arg; in __register_sysctl_paths()
1459 return header; in __register_sysctl_paths()
1468 kfree(header); in __register_sysctl_paths()
1469 header = NULL; in __register_sysctl_paths()
1508 static void put_links(struct ctl_table_header *header) in put_links() argument
1511 struct ctl_table_root *root = header->root; in put_links()
1512 struct ctl_dir *parent = header->parent; in put_links()
1516 if (header->set == root_set) in put_links()
1523 for (entry = header->ctl_table; entry->procname; entry++) { in put_links()
1542 static void drop_sysctl_table(struct ctl_table_header *header) in drop_sysctl_table() argument
1544 struct ctl_dir *parent = header->parent; in drop_sysctl_table()
1546 if (--header->nreg) in drop_sysctl_table()
1549 put_links(header); in drop_sysctl_table()
1550 start_unregistering(header); in drop_sysctl_table()
1551 if (!--header->count) in drop_sysctl_table()
1552 kfree_rcu(header, rcu); in drop_sysctl_table()
1555 drop_sysctl_table(&parent->header); in drop_sysctl_table()
1565 void unregister_sysctl_table(struct ctl_table_header * header) in unregister_sysctl_table() argument
1570 if (header == NULL) in unregister_sysctl_table()
1573 nr_subheaders = count_subheaders(header->ctl_table_arg); in unregister_sysctl_table()
1578 subheaders = (struct ctl_table_header **)(header + 1); in unregister_sysctl_table()
1585 kfree(header); in unregister_sysctl_table()
1590 drop_sysctl_table(header); in unregister_sysctl_table()
1601 init_header(&set->dir.header, root, set, NULL, root_table); in setup_sysctl_set()