Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit e0d04529 authored by Eric W. Biederman's avatar Eric W. Biederman
Browse files

sysctl: Factor out init_header from __register_sysctl_paths



Factor out a routing to initialize the sysctl_table_header.

Signed-off-by: default avatarEric W. Biederman <ebiederm@xmission.com>
parent 938aaa4f
Loading
Loading
Loading
Loading
+17 −8
Original line number Original line Diff line number Diff line
@@ -42,6 +42,21 @@ static struct ctl_table_root sysctl_table_root = {


static DEFINE_SPINLOCK(sysctl_lock);
static DEFINE_SPINLOCK(sysctl_lock);


static void init_header(struct ctl_table_header *head,
	struct ctl_table_root *root, struct ctl_table_set *set,
	struct ctl_table *table)
{
	head->ctl_table_arg = table;
	INIT_LIST_HEAD(&head->ctl_entry);
	head->used = 0;
	head->count = 1;
	head->nreg = 1;
	head->unregistering = NULL;
	head->root = root;
	head->set = set;
	head->parent = NULL;
}

/* called under sysctl_lock */
/* called under sysctl_lock */
static int use_table(struct ctl_table_header *p)
static int use_table(struct ctl_table_header *p)
{
{
@@ -932,14 +947,8 @@ struct ctl_table_header *__register_sysctl_table(
		new_name += namelen + 1;
		new_name += namelen + 1;
	}
	}
	*prevp = table;
	*prevp = table;
	header->ctl_table_arg = table;


	init_header(header, root, NULL, table);
	INIT_LIST_HEAD(&header->ctl_entry);
	header->used = 0;
	header->unregistering = NULL;
	header->root = root;
	header->count = 1;
	header->nreg = 1;
	if (sysctl_check_table(path, table))
	if (sysctl_check_table(path, table))
		goto fail;
		goto fail;