Since the sysctl data for l[3|4]proto now resides in pernet nf_proto_net.
We can now remove this unused fields from struct nf_contrack_l[3,4]proto.
Acked-by: Eric W. Biederman <ebiederm@xmission.com>
Signed-off-by: Gao feng <gaofeng@cn.fujitsu.com>
Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
        size_t nla_size;
 
 #ifdef CONFIG_SYSCTL
-       struct ctl_table_header *ctl_table_header;
        const char              *ctl_table_path;
-       struct ctl_table        *ctl_table;
 #endif /* CONFIG_SYSCTL */
 
        /* Init l3proto pernet data */
 
                unsigned int nlattr_max;
                const struct nla_policy *nla_policy;
        } ctnl_timeout;
-#endif
-
-#ifdef CONFIG_SYSCTL
-       struct ctl_table_header **ctl_table_header;
-       struct ctl_table        *ctl_table;
-       unsigned int            *ctl_table_users;
-#ifdef CONFIG_NF_CONNTRACK_PROC_COMPAT
-       struct ctl_table_header *ctl_compat_table_header;
-       struct ctl_table        *ctl_compat_table;
-#endif
 #endif
        int     *net_id;
        /* Init l4proto pernet data */
 
 #endif
 #if defined(CONFIG_SYSCTL) && defined(CONFIG_NF_CONNTRACK_PROC_COMPAT)
        .ctl_table_path  = "net/ipv4/netfilter",
-       .ctl_table       = ip_ct_sysctl_table,
 #endif
        .init_net        = ipv4_init_net,
        .me              = THIS_MODULE,
 
 #endif /* CONFIG_NF_CT_NETLINK_TIMEOUT */
 
 #ifdef CONFIG_SYSCTL
-static struct ctl_table_header *icmp_sysctl_header;
 static struct ctl_table icmp_sysctl_table[] = {
        {
                .procname       = "nf_conntrack_icmp_timeout",
                .nla_policy     = icmp_timeout_nla_policy,
        },
 #endif /* CONFIG_NF_CT_NETLINK_TIMEOUT */
-#ifdef CONFIG_SYSCTL
-       .ctl_table_header       = &icmp_sysctl_header,
-       .ctl_table              = icmp_sysctl_table,
-#ifdef CONFIG_NF_CONNTRACK_PROC_COMPAT
-       .ctl_compat_table       = icmp_compat_sysctl_table,
-#endif
-#endif
        .init_net               = icmp_init_net,
 };
 
 #endif /* CONFIG_NF_CT_NETLINK_TIMEOUT */
 
 #ifdef CONFIG_SYSCTL
-static struct ctl_table_header *icmpv6_sysctl_header;
 static struct ctl_table icmpv6_sysctl_table[] = {
        {
                .procname       = "nf_conntrack_icmpv6_timeout",
                .nla_policy     = icmpv6_timeout_nla_policy,
        },
 #endif /* CONFIG_NF_CT_NETLINK_TIMEOUT */
-#ifdef CONFIG_SYSCTL
-       .ctl_table_header       = &icmpv6_sysctl_header,
-       .ctl_table              = icmpv6_sysctl_table,
-#endif
        .init_net               = icmpv6_init_net,
 };
 
 #endif /* CONFIG_NF_CT_NETLINK_TIMEOUT */
 
 #ifdef CONFIG_SYSCTL
-static struct ctl_table_header *generic_sysctl_header;
 static struct ctl_table generic_sysctl_table[] = {
        {
                .procname       = "nf_conntrack_generic_timeout",
                .nla_policy     = generic_timeout_nla_policy,
        },
 #endif /* CONFIG_NF_CT_NETLINK_TIMEOUT */
-#ifdef CONFIG_SYSCTL
-       .ctl_table_header       = &generic_sysctl_header,
-       .ctl_table              = generic_sysctl_table,
-#ifdef CONFIG_NF_CONNTRACK_PROC_COMPAT
-       .ctl_compat_table       = generic_compat_sysctl_table,
-#endif
-#endif
        .init_net               = generic_init_net,
 };
 
 
 
 #ifdef CONFIG_SYSCTL
-static unsigned int sctp_sysctl_table_users;
-static struct ctl_table_header *sctp_sysctl_header;
 static struct ctl_table sctp_sysctl_table[] = {
        {
                .procname       = "nf_conntrack_sctp_timeout_closed",
                .nla_policy     = sctp_timeout_nla_policy,
        },
 #endif /* CONFIG_NF_CT_NETLINK_TIMEOUT */
-#ifdef CONFIG_SYSCTL
-       .ctl_table_users        = &sctp_sysctl_table_users,
-       .ctl_table_header       = &sctp_sysctl_header,
-       .ctl_table              = sctp_sysctl_table,
-#ifdef CONFIG_NF_CONNTRACK_PROC_COMPAT
-       .ctl_compat_table       = sctp_compat_sysctl_table,
-#endif
-#endif
        .net_id                 = &sctp_net_id,
        .init_net               = sctpv4_init_net,
 };
                .nla_policy     = sctp_timeout_nla_policy,
        },
 #endif /* CONFIG_NF_CT_NETLINK_TIMEOUT */
-#endif
-#ifdef CONFIG_SYSCTL
-       .ctl_table_users        = &sctp_sysctl_table_users,
-       .ctl_table_header       = &sctp_sysctl_header,
-       .ctl_table              = sctp_sysctl_table,
 #endif
        .net_id                 = &sctp_net_id,
        .init_net               = sctpv6_init_net,
 
 #endif /* CONFIG_NF_CT_NETLINK_TIMEOUT */
 
 #ifdef CONFIG_SYSCTL
-static unsigned int tcp_sysctl_table_users;
-static struct ctl_table_header *tcp_sysctl_header;
 static struct ctl_table tcp_sysctl_table[] = {
        {
                .procname       = "nf_conntrack_tcp_timeout_syn_sent",
                .nla_policy     = tcp_timeout_nla_policy,
        },
 #endif /* CONFIG_NF_CT_NETLINK_TIMEOUT */
-#ifdef CONFIG_SYSCTL
-       .ctl_table_users        = &tcp_sysctl_table_users,
-       .ctl_table_header       = &tcp_sysctl_header,
-       .ctl_table              = tcp_sysctl_table,
-#ifdef CONFIG_NF_CONNTRACK_PROC_COMPAT
-       .ctl_compat_table       = tcp_compat_sysctl_table,
-#endif
-#endif
        .init_net               = tcpv4_init_net,
 };
 EXPORT_SYMBOL_GPL(nf_conntrack_l4proto_tcp4);
                .nla_policy     = tcp_timeout_nla_policy,
        },
 #endif /* CONFIG_NF_CT_NETLINK_TIMEOUT */
-#ifdef CONFIG_SYSCTL
-       .ctl_table_users        = &tcp_sysctl_table_users,
-       .ctl_table_header       = &tcp_sysctl_header,
-       .ctl_table              = tcp_sysctl_table,
-#endif
        .init_net               = tcpv6_init_net,
 };
 EXPORT_SYMBOL_GPL(nf_conntrack_l4proto_tcp6);
 
 #endif /* CONFIG_NF_CT_NETLINK_TIMEOUT */
 
 #ifdef CONFIG_SYSCTL
-static unsigned int udp_sysctl_table_users;
-static struct ctl_table_header *udp_sysctl_header;
 static struct ctl_table udp_sysctl_table[] = {
        {
                .procname       = "nf_conntrack_udp_timeout",
                .nla_policy     = udp_timeout_nla_policy,
        },
 #endif /* CONFIG_NF_CT_NETLINK_TIMEOUT */
-#ifdef CONFIG_SYSCTL
-       .ctl_table_users        = &udp_sysctl_table_users,
-       .ctl_table_header       = &udp_sysctl_header,
-       .ctl_table              = udp_sysctl_table,
-#ifdef CONFIG_NF_CONNTRACK_PROC_COMPAT
-       .ctl_compat_table       = udp_compat_sysctl_table,
-#endif
-#endif
        .init_net               = udpv4_init_net,
 };
 EXPORT_SYMBOL_GPL(nf_conntrack_l4proto_udp4);
                .nla_policy     = udp_timeout_nla_policy,
        },
 #endif /* CONFIG_NF_CT_NETLINK_TIMEOUT */
-#ifdef CONFIG_SYSCTL
-       .ctl_table_users        = &udp_sysctl_table_users,
-       .ctl_table_header       = &udp_sysctl_header,
-       .ctl_table              = udp_sysctl_table,
-#endif
        .init_net               = udpv6_init_net,
 };
 EXPORT_SYMBOL_GPL(nf_conntrack_l4proto_udp6);
 
 #endif /* CONFIG_NF_CT_NETLINK_TIMEOUT */
 
 #ifdef CONFIG_SYSCTL
-static unsigned int udplite_sysctl_table_users;
-static struct ctl_table_header *udplite_sysctl_header;
 static struct ctl_table udplite_sysctl_table[] = {
        {
                .procname       = "nf_conntrack_udplite_timeout",
                .nla_policy     = udplite_timeout_nla_policy,
        },
 #endif /* CONFIG_NF_CT_NETLINK_TIMEOUT */
-#ifdef CONFIG_SYSCTL
-       .ctl_table_users        = &udplite_sysctl_table_users,
-       .ctl_table_header       = &udplite_sysctl_header,
-       .ctl_table              = udplite_sysctl_table,
-#endif
        .net_id                 = &udplite_net_id,
        .init_net               = udplite_init_net,
 };
                .nla_policy     = udplite_timeout_nla_policy,
        },
 #endif /* CONFIG_NF_CT_NETLINK_TIMEOUT */
-#ifdef CONFIG_SYSCTL
-       .ctl_table_users        = &udplite_sysctl_table_users,
-       .ctl_table_header       = &udplite_sysctl_header,
-       .ctl_table              = udplite_sysctl_table,
-#endif
        .net_id                 = &udplite_net_id,
        .init_net               = udplite_init_net,
 };