]> www.pilppa.org Git - linux-2.6-omap-h63xx.git/blobdiff - net/ipv6/netfilter/nf_conntrack_l3proto_ipv6.c
netfilter: netns nf_conntrack: pass netns pointer to nf_conntrack_in()
[linux-2.6-omap-h63xx.git] / net / ipv6 / netfilter / nf_conntrack_l3proto_ipv6.c
index 85050c072abd04195013049042de487eed06f157..e91db16611d902092b956c63031ee1c39a723d66 100644 (file)
@@ -211,11 +211,10 @@ static unsigned int ipv6_defrag(unsigned int hooknum,
        return NF_STOLEN;
 }
 
-static unsigned int ipv6_conntrack_in(unsigned int hooknum,
-                                     struct sk_buff *skb,
-                                     const struct net_device *in,
-                                     const struct net_device *out,
-                                     int (*okfn)(struct sk_buff *))
+static unsigned int __ipv6_conntrack_in(struct net *net,
+                                       unsigned int hooknum,
+                                       struct sk_buff *skb,
+                                       int (*okfn)(struct sk_buff *))
 {
        struct sk_buff *reasm = skb->nfct_reasm;
 
@@ -225,7 +224,7 @@ static unsigned int ipv6_conntrack_in(unsigned int hooknum,
                if (!reasm->nfct) {
                        unsigned int ret;
 
-                       ret = nf_conntrack_in(PF_INET6, hooknum, reasm);
+                       ret = nf_conntrack_in(net, PF_INET6, hooknum, reasm);
                        if (ret != NF_ACCEPT)
                                return ret;
                }
@@ -235,7 +234,16 @@ static unsigned int ipv6_conntrack_in(unsigned int hooknum,
                return NF_ACCEPT;
        }
 
-       return nf_conntrack_in(PF_INET6, hooknum, skb);
+       return nf_conntrack_in(net, PF_INET6, hooknum, skb);
+}
+
+static unsigned int ipv6_conntrack_in(unsigned int hooknum,
+                                     struct sk_buff *skb,
+                                     const struct net_device *in,
+                                     const struct net_device *out,
+                                     int (*okfn)(struct sk_buff *))
+{
+       return __ipv6_conntrack_in(dev_net(in), hooknum, skb, okfn);
 }
 
 static unsigned int ipv6_conntrack_local(unsigned int hooknum,
@@ -250,7 +258,7 @@ static unsigned int ipv6_conntrack_local(unsigned int hooknum,
                        printk("ipv6_conntrack_local: packet too short\n");
                return NF_ACCEPT;
        }
-       return ipv6_conntrack_in(hooknum, skb, in, out, okfn);
+       return __ipv6_conntrack_in(dev_net(out), hooknum, skb, okfn);
 }
 
 static struct nf_hook_ops ipv6_conntrack_ops[] __read_mostly = {