netfilter: conntrack: remove empty pernet fini stubs
[linux-2.6-block.git] / net / netfilter / nf_conntrack_acct.c
index 1d66de5151b2d9551ad4061ff10ea0df739fae54..49e523cc49d0a89daddf1aaadfa5fbf2910a2a9e 100644 (file)
@@ -25,102 +25,15 @@ static bool nf_ct_acct __read_mostly;
 module_param_named(acct, nf_ct_acct, bool, 0644);
 MODULE_PARM_DESC(acct, "Enable connection tracking flow accounting.");
 
-#ifdef CONFIG_SYSCTL
-static struct ctl_table acct_sysctl_table[] = {
-       {
-               .procname       = "nf_conntrack_acct",
-               .data           = &init_net.ct.sysctl_acct,
-               .maxlen         = sizeof(unsigned int),
-               .mode           = 0644,
-               .proc_handler   = proc_dointvec,
-       },
-       {}
-};
-#endif /* CONFIG_SYSCTL */
-
-unsigned int
-seq_print_acct(struct seq_file *s, const struct nf_conn *ct, int dir)
-{
-       struct nf_conn_acct *acct;
-       struct nf_conn_counter *counter;
-
-       acct = nf_conn_acct_find(ct);
-       if (!acct)
-               return 0;
-
-       counter = acct->counter;
-       seq_printf(s, "packets=%llu bytes=%llu ",
-                  (unsigned long long)atomic64_read(&counter[dir].packets),
-                  (unsigned long long)atomic64_read(&counter[dir].bytes));
-
-       return 0;
-};
-EXPORT_SYMBOL_GPL(seq_print_acct);
-
 static const struct nf_ct_ext_type acct_extend = {
        .len    = sizeof(struct nf_conn_acct),
        .align  = __alignof__(struct nf_conn_acct),
        .id     = NF_CT_EXT_ACCT,
 };
 
-#ifdef CONFIG_SYSCTL
-static int nf_conntrack_acct_init_sysctl(struct net *net)
-{
-       struct ctl_table *table;
-
-       table = kmemdup(acct_sysctl_table, sizeof(acct_sysctl_table),
-                       GFP_KERNEL);
-       if (!table)
-               goto out;
-
-       table[0].data = &net->ct.sysctl_acct;
-
-       /* Don't export sysctls to unprivileged users */
-       if (net->user_ns != &init_user_ns)
-               table[0].procname = NULL;
-
-       net->ct.acct_sysctl_header = register_net_sysctl(net, "net/netfilter",
-                                                        table);
-       if (!net->ct.acct_sysctl_header) {
-               pr_err("can't register to sysctl\n");
-               goto out_register;
-       }
-       return 0;
-
-out_register:
-       kfree(table);
-out:
-       return -ENOMEM;
-}
-
-static void nf_conntrack_acct_fini_sysctl(struct net *net)
-{
-       struct ctl_table *table;
-
-       table = net->ct.acct_sysctl_header->ctl_table_arg;
-       unregister_net_sysctl_table(net->ct.acct_sysctl_header);
-       kfree(table);
-}
-#else
-static int nf_conntrack_acct_init_sysctl(struct net *net)
-{
-       return 0;
-}
-
-static void nf_conntrack_acct_fini_sysctl(struct net *net)
-{
-}
-#endif
-
-int nf_conntrack_acct_pernet_init(struct net *net)
+void nf_conntrack_acct_pernet_init(struct net *net)
 {
        net->ct.sysctl_acct = nf_ct_acct;
-       return nf_conntrack_acct_init_sysctl(net);
-}
-
-void nf_conntrack_acct_pernet_fini(struct net *net)
-{
-       nf_conntrack_acct_fini_sysctl(net);
 }
 
 int nf_conntrack_acct_init(void)