diff options
author | Gao feng <gaofeng@cn.fujitsu.com> | 2012-06-21 00:36:40 -0400 |
---|---|---|
committer | Pablo Neira Ayuso <pablo@netfilter.org> | 2012-06-27 12:36:25 -0400 |
commit | f28997e27a03abc679f13824a0574b09112eea37 (patch) | |
tree | c2bd931367531ce99cb929acff6966e676515b7b | |
parent | f1caad274515ffd9841ac57ce9a7b5fc35bbf689 (diff) |
netfilter: nf_conntrack: add nf_ct_kfree_compat_sysctl_table
This patch is a cleanup.
It adds nf_ct_kfree_compat_sysctl_table to release l4proto's
compat sysctl table and set the compat sysctl table point to NULL.
This new function will be used by follow-up patches.
Signed-off-by: Gao feng <gaofeng@cn.fujitsu.com>
Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
-rw-r--r-- | include/net/netfilter/nf_conntrack_l4proto.h | 8 | ||||
-rw-r--r-- | net/netfilter/nf_conntrack_proto.c | 3 |
2 files changed, 9 insertions, 2 deletions
diff --git a/include/net/netfilter/nf_conntrack_l4proto.h b/include/net/netfilter/nf_conntrack_l4proto.h index 5dd60f2d02a1..08bb571b7abd 100644 --- a/include/net/netfilter/nf_conntrack_l4proto.h +++ b/include/net/netfilter/nf_conntrack_l4proto.h | |||
@@ -124,6 +124,14 @@ extern int nf_conntrack_l4proto_register(struct net *net, | |||
124 | extern void nf_conntrack_l4proto_unregister(struct net *net, | 124 | extern void nf_conntrack_l4proto_unregister(struct net *net, |
125 | struct nf_conntrack_l4proto *proto); | 125 | struct nf_conntrack_l4proto *proto); |
126 | 126 | ||
127 | static inline void nf_ct_kfree_compat_sysctl_table(struct nf_proto_net *pn) | ||
128 | { | ||
129 | #if defined(CONFIG_SYSCTL) && defined(CONFIG_NF_CONNTRACK_PROC_COMPAT) | ||
130 | kfree(pn->ctl_compat_table); | ||
131 | pn->ctl_compat_table = NULL; | ||
132 | #endif | ||
133 | } | ||
134 | |||
127 | /* Generic netlink helpers */ | 135 | /* Generic netlink helpers */ |
128 | extern int nf_ct_port_tuple_to_nlattr(struct sk_buff *skb, | 136 | extern int nf_ct_port_tuple_to_nlattr(struct sk_buff *skb, |
129 | const struct nf_conntrack_tuple *tuple); | 137 | const struct nf_conntrack_tuple *tuple); |
diff --git a/net/netfilter/nf_conntrack_proto.c b/net/netfilter/nf_conntrack_proto.c index 6f4b6f3deee5..9d6b6ab193a9 100644 --- a/net/netfilter/nf_conntrack_proto.c +++ b/net/netfilter/nf_conntrack_proto.c | |||
@@ -361,8 +361,7 @@ int nf_ct_l4proto_register_sysctl(struct net *net, | |||
361 | if (err == 0) | 361 | if (err == 0) |
362 | goto out; | 362 | goto out; |
363 | 363 | ||
364 | kfree(pn->ctl_compat_table); | 364 | nf_ct_kfree_compat_sysctl_table(pn); |
365 | pn->ctl_compat_table = NULL; | ||
366 | nf_ct_unregister_sysctl(&pn->ctl_table_header, | 365 | nf_ct_unregister_sysctl(&pn->ctl_table_header, |
367 | &pn->ctl_table, | 366 | &pn->ctl_table, |
368 | &pn->users); | 367 | &pn->users); |