]> pilppa.org Git - linux-2.6-omap-h63xx.git/blobdiff - net/ipv4/netfilter/ipt_MASQUERADE.c
Merge branch 'x86-fixes-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git...
[linux-2.6-omap-h63xx.git] / net / ipv4 / netfilter / ipt_MASQUERADE.c
index d80fee8327e4c156f672386cff5b29b625f6e440..0841aefaa503f072c43b620073eed84e20c40658 100644 (file)
@@ -77,7 +77,7 @@ masquerade_tg(struct sk_buff *skb, const struct net_device *in,
                return NF_ACCEPT;
 
        mr = targinfo;
-       rt = (struct rtable *)skb->dst;
+       rt = skb->rtable;
        newsrc = inet_select_addr(out, rt->rt_gateway, RT_SCOPE_UNIVERSE);
        if (!newsrc) {
                printk("MASQUERADE: %s ate my IP address\n", out->name);
@@ -120,7 +120,7 @@ static int masq_device_event(struct notifier_block *this,
 {
        const struct net_device *dev = ptr;
 
-       if (dev->nd_net != &init_net)
+       if (!net_eq(dev_net(dev), &init_net))
                return NOTIFY_DONE;
 
        if (event == NETDEV_DOWN) {
@@ -139,18 +139,8 @@ static int masq_inet_event(struct notifier_block *this,
                           unsigned long event,
                           void *ptr)
 {
-       const struct net_device *dev = ((struct in_ifaddr *)ptr)->ifa_dev->dev;
-
-       if (event == NETDEV_DOWN) {
-               /* IP address was deleted.  Search entire table for
-                  conntracks which were associated with that device,
-                  and forget them. */
-               NF_CT_ASSERT(dev->ifindex != 0);
-
-               nf_ct_iterate_cleanup(device_cmp, (void *)(long)dev->ifindex);
-       }
-
-       return NOTIFY_DONE;
+       struct net_device *dev = ((struct in_ifaddr *)ptr)->ifa_dev->dev;
+       return masq_device_event(this, event, dev);
 }
 
 static struct notifier_block masq_dev_notifier = {