* [PATCH nf-next] netfilter: fix build failure with CONNTRACK=n NF_DEFRAG=y
2016-12-04 21:57 [nf-next:master 18/28] net/ipv4/netfilter/nf_defrag_ipv4.c:110:9: error: 'struct net' has no member named 'ct' kbuild test robot
@ 2016-12-04 22:37 ` Florian Westphal
2016-12-06 10:16 ` Pablo Neira Ayuso
0 siblings, 1 reply; 3+ messages in thread
From: Florian Westphal @ 2016-12-04 22:37 UTC (permalink / raw)
To: netfilter-devel; +Cc: Florian Westphal
conntrack depends on defrag support, but not vice versa, so we cannot
place defrag_ipv4/6 into netns->ct:
net/ipv4/netfilter/nf_defrag_ipv4.c:110:9: error: 'struct net' has no member named 'ct'
Move it into net->nf.
Reported-by: kbuild test robot <fengguang.wu@intel.com>
Signed-off-by: Florian Westphal <fw@strlen.de>
---
Pablo, if you prefer to squash I have no objections.
include/net/netns/conntrack.h | 2 --
include/net/netns/netfilter.h | 6 ++++++
net/ipv4/netfilter/nf_defrag_ipv4.c | 10 +++++-----
net/ipv6/netfilter/nf_defrag_ipv6_hooks.c | 10 +++++-----
4 files changed, 16 insertions(+), 12 deletions(-)
diff --git a/include/net/netns/conntrack.h b/include/net/netns/conntrack.h
index 2a6af004e2f8..cf799fc3fdec 100644
--- a/include/net/netns/conntrack.h
+++ b/include/net/netns/conntrack.h
@@ -124,8 +124,6 @@ struct netns_ct {
int sysctl_acct;
int sysctl_auto_assign_helper;
bool auto_assign_helper_warned;
- bool defrag_ipv4;
- bool defrag_ipv6;
int sysctl_tstamp;
int sysctl_checksum;
diff --git a/include/net/netns/netfilter.h b/include/net/netns/netfilter.h
index 58487b1cc99a..cea396b53a60 100644
--- a/include/net/netns/netfilter.h
+++ b/include/net/netns/netfilter.h
@@ -17,5 +17,11 @@ struct netns_nf {
struct ctl_table_header *nf_log_dir_header;
#endif
struct nf_hook_entry __rcu *hooks[NFPROTO_NUMPROTO][NF_MAX_HOOKS];
+#if IS_ENABLED(CONFIG_NF_DEFRAG_IPV4)
+ bool defrag_ipv4;
+#endif
+#if IS_ENABLED(CONFIG_NF_DEFRAG_IPV6)
+ bool defrag_ipv6;
+#endif
};
#endif
diff --git a/net/ipv4/netfilter/nf_defrag_ipv4.c b/net/ipv4/netfilter/nf_defrag_ipv4.c
index 8f72e4f172be..49bd6a54404f 100644
--- a/net/ipv4/netfilter/nf_defrag_ipv4.c
+++ b/net/ipv4/netfilter/nf_defrag_ipv4.c
@@ -107,10 +107,10 @@ static struct nf_hook_ops ipv4_defrag_ops[] = {
static void __net_exit defrag4_net_exit(struct net *net)
{
- if (net->ct.defrag_ipv4) {
+ if (net->nf.defrag_ipv4) {
nf_unregister_net_hooks(net, ipv4_defrag_ops,
ARRAY_SIZE(ipv4_defrag_ops));
- net->ct.defrag_ipv4 = false;
+ net->nf.defrag_ipv4 = false;
}
}
@@ -134,17 +134,17 @@ int nf_defrag_ipv4_enable(struct net *net)
might_sleep();
- if (net->ct.defrag_ipv4)
+ if (net->nf.defrag_ipv4)
return 0;
mutex_lock(&defrag4_mutex);
- if (net->ct.defrag_ipv4)
+ if (net->nf.defrag_ipv4)
goto out_unlock;
err = nf_register_net_hooks(net, ipv4_defrag_ops,
ARRAY_SIZE(ipv4_defrag_ops));
if (err == 0)
- net->ct.defrag_ipv4 = true;
+ net->nf.defrag_ipv4 = true;
out_unlock:
mutex_unlock(&defrag4_mutex);
diff --git a/net/ipv6/netfilter/nf_defrag_ipv6_hooks.c b/net/ipv6/netfilter/nf_defrag_ipv6_hooks.c
index b6ad889b165b..8e0bdd058787 100644
--- a/net/ipv6/netfilter/nf_defrag_ipv6_hooks.c
+++ b/net/ipv6/netfilter/nf_defrag_ipv6_hooks.c
@@ -91,10 +91,10 @@ static struct nf_hook_ops ipv6_defrag_ops[] = {
static void __net_exit defrag6_net_exit(struct net *net)
{
- if (net->ct.defrag_ipv6) {
+ if (net->nf.defrag_ipv6) {
nf_unregister_net_hooks(net, ipv6_defrag_ops,
ARRAY_SIZE(ipv6_defrag_ops));
- net->ct.defrag_ipv6 = false;
+ net->nf.defrag_ipv6 = false;
}
}
@@ -136,17 +136,17 @@ int nf_defrag_ipv6_enable(struct net *net)
might_sleep();
- if (net->ct.defrag_ipv6)
+ if (net->nf.defrag_ipv6)
return 0;
mutex_lock(&defrag6_mutex);
- if (net->ct.defrag_ipv6)
+ if (net->nf.defrag_ipv6)
goto out_unlock;
err = nf_register_net_hooks(net, ipv6_defrag_ops,
ARRAY_SIZE(ipv6_defrag_ops));
if (err == 0)
- net->ct.defrag_ipv6 = true;
+ net->nf.defrag_ipv6 = true;
out_unlock:
mutex_unlock(&defrag6_mutex);
--
2.7.3
^ permalink raw reply related [flat|nested] 3+ messages in thread