mirror of
https://github.com/torvalds/linux.git
synced 2024-11-22 04:38:03 +00:00
sysctl: Add size argument to init_header
In this commit, we add a table_size argument to the init_header function in order to initialize the ctl_table_size variable in ctl_table_header. Even though the size is not yet used, it is now initialized within the sysctl subsys. We need this commit for when we start adding the table_size arguments to the sysctl functions (e.g. register_sysctl, __register_sysctl_table and __register_sysctl_init). Note that in __register_sysctl_table we temporarily use a calculated size until we add the size argument to that function in subsequent commits. Signed-off-by: Joel Granados <j.granados@samsung.com> Signed-off-by: Luis Chamberlain <mcgrof@kernel.org>
This commit is contained in:
parent
1e88772354
commit
b1f01e2bae
@ -188,9 +188,10 @@ static void erase_entry(struct ctl_table_header *head, struct ctl_table *entry)
|
||||
|
||||
static void init_header(struct ctl_table_header *head,
|
||||
struct ctl_table_root *root, struct ctl_table_set *set,
|
||||
struct ctl_node *node, struct ctl_table *table)
|
||||
struct ctl_node *node, struct ctl_table *table, size_t table_size)
|
||||
{
|
||||
head->ctl_table = table;
|
||||
head->ctl_table_size = table_size;
|
||||
head->ctl_table_arg = table;
|
||||
head->used = 0;
|
||||
head->count = 1;
|
||||
@ -973,7 +974,7 @@ static struct ctl_dir *new_dir(struct ctl_table_set *set,
|
||||
memcpy(new_name, name, namelen);
|
||||
table[0].procname = new_name;
|
||||
table[0].mode = S_IFDIR|S_IRUGO|S_IXUGO;
|
||||
init_header(&new->header, set->dir.header.root, set, node, table);
|
||||
init_header(&new->header, set->dir.header.root, set, node, table, 1);
|
||||
|
||||
return new;
|
||||
}
|
||||
@ -1197,7 +1198,8 @@ static struct ctl_table_header *new_links(struct ctl_dir *dir, struct ctl_table_
|
||||
link_name += len;
|
||||
link++;
|
||||
}
|
||||
init_header(links, dir->header.root, dir->header.set, node, link_table);
|
||||
init_header(links, dir->header.root, dir->header.set, node, link_table,
|
||||
head->ctl_table_size);
|
||||
links->nreg = nr_entries;
|
||||
|
||||
return links;
|
||||
@ -1372,7 +1374,7 @@ struct ctl_table_header *__register_sysctl_table(
|
||||
return NULL;
|
||||
|
||||
node = (struct ctl_node *)(header + 1);
|
||||
init_header(header, root, set, node, table);
|
||||
init_header(header, root, set, node, table, nr_entries);
|
||||
if (sysctl_check_table(path, header))
|
||||
goto fail;
|
||||
|
||||
@ -1537,7 +1539,7 @@ void setup_sysctl_set(struct ctl_table_set *set,
|
||||
{
|
||||
memset(set, 0, sizeof(*set));
|
||||
set->is_seen = is_seen;
|
||||
init_header(&set->dir.header, root, set, NULL, root_table);
|
||||
init_header(&set->dir.header, root, set, NULL, root_table, 1);
|
||||
}
|
||||
|
||||
void retire_sysctl_set(struct ctl_table_set *set)
|
||||
|
Loading…
Reference in New Issue
Block a user