sysctl: Factor out init_header from __register_sysctl_paths
authorEric W. Biederman <ebiederm@xmission.com>
Tue, 10 Jan 2012 06:36:41 +0000 (22:36 -0800)
committerEric W. Biederman <ebiederm@xmission.com>
Wed, 25 Jan 2012 00:40:28 +0000 (16:40 -0800)
Factor out a routing to initialize the sysctl_table_header.

Signed-off-by: Eric W. Biederman <ebiederm@xmission.com>
fs/proc/proc_sysctl.c

index 13faa48..4979925 100644 (file)
@@ -42,6 +42,21 @@ static struct ctl_table_root sysctl_table_root = {
 
 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 */
 static int use_table(struct ctl_table_header *p)
 {
@@ -932,14 +947,8 @@ struct ctl_table_header *__register_sysctl_table(
                new_name += namelen + 1;
        }
        *prevp = table;
-       header->ctl_table_arg = table;
-
-       INIT_LIST_HEAD(&header->ctl_entry);
-       header->used = 0;
-       header->unregistering = NULL;
-       header->root = root;
-       header->count = 1;
-       header->nreg = 1;
+
+       init_header(header, root, NULL, table);
        if (sysctl_check_table(path, table))
                goto fail;