sysctl: Implement retire_sysctl_set
authorEric W. Biederman <ebiederm@xmission.com>
Tue, 10 Jan 2012 06:19:13 +0000 (22:19 -0800)
committerEric W. Biederman <ebiederm@xmission.com>
Wed, 25 Jan 2012 00:37:55 +0000 (16:37 -0800)
This adds a small helper retire_sysctl_set to remove the intimate knowledge about
the how a sysctl_set is implemented from net/sysct_net.c

Signed-off-by: Eric W. Biederman <ebiederm@xmission.com>
fs/proc/proc_sysctl.c
include/linux/sysctl.h
net/sysctl_net.c

index f6aa75111b41ef29fb11054d91b38f8c007d575a..9d8223cd3655d5ddd3b60393726a91ce90d40c52 100644 (file)
@@ -1080,6 +1080,10 @@ void setup_sysctl_set(struct ctl_table_set *p,
        p->is_seen = is_seen;
 }
 
+void retire_sysctl_set(struct ctl_table_set *set)
+{
+       WARN_ON(!list_empty(&set->list));
+}
 
 int __init proc_sys_init(void)
 {
index 08cabbfddacbad2cafd4f116424be917ed4611ff..475ff0e35e638354909f65eeadf124ccb3e13534 100644 (file)
@@ -1072,6 +1072,7 @@ void proc_sys_poll_notify(struct ctl_table_poll *poll);
 extern void setup_sysctl_set(struct ctl_table_set *p,
        struct ctl_table_set *parent,
        int (*is_seen)(struct ctl_table_set *));
+extern void retire_sysctl_set(struct ctl_table_set *set);
 
 void register_sysctl_root(struct ctl_table_root *root);
 struct ctl_table_header *__register_sysctl_paths(
index a6bbee2bc710e482e02ed0c2bf9380d0ae2f2a48..ffd67a6515a372a50c52761b25b7a3486494d7d2 100644 (file)
@@ -82,7 +82,7 @@ static int __net_init sysctl_net_init(struct net *net)
 
 static void __net_exit sysctl_net_exit(struct net *net)
 {
-       WARN_ON(!list_empty(&net->sysctls.list));
+       retire_sysctl_set(&net->sysctls);
 }
 
 static struct pernet_operations sysctl_pernet_ops = {