[INET]: Add IP(V6)_PMTUDISC_RPOBE
[powerpc.git] / net / ipv6 / anycast.c
index f6881d7..09117d6 100644 (file)
@@ -1,6 +1,6 @@
 /*
  *     Anycast support for IPv6
- *     Linux INET6 implementation 
+ *     Linux INET6 implementation
  *
  *     Authors:
  *     David L Stevens (dlstevens@us.ibm.com)
@@ -21,7 +21,6 @@
 #include <linux/string.h>
 #include <linux/socket.h>
 #include <linux/sockios.h>
-#include <linux/sched.h>
 #include <linux/net.h>
 #include <linux/in6.h>
 #include <linux/netdevice.h>
@@ -56,7 +55,7 @@ ip6_onlink(struct in6_addr *addr, struct net_device *dev)
        int     onlink;
 
        onlink = 0;
-       read_lock(&addrconf_lock);
+       rcu_read_lock();
        idev = __in6_dev_get(dev);
        if (idev) {
                read_lock_bh(&idev->lock);
@@ -68,7 +67,7 @@ ip6_onlink(struct in6_addr *addr, struct net_device *dev)
                }
                read_unlock_bh(&idev->lock);
        }
-       read_unlock(&addrconf_lock);
+       rcu_read_unlock();
        return onlink;
 }
 
@@ -335,7 +334,7 @@ int ipv6_dev_ac_inc(struct net_device *dev, struct in6_addr *addr)
        write_unlock_bh(&idev->lock);
 
        dst_hold(&rt->u.dst);
-       if (ip6_ins_rt(rt, NULL, NULL, NULL))
+       if (ip6_ins_rt(rt))
                dst_release(&rt->u.dst);
 
        addrconf_join_solict(dev, &aca->aca_addr);
@@ -378,7 +377,7 @@ int __ipv6_dev_ac_dec(struct inet6_dev *idev, struct in6_addr *addr)
        addrconf_leave_solict(idev, &aca->aca_addr);
 
        dst_hold(&aca->aca_rt->u.dst);
-       if (ip6_del_rt(aca->aca_rt, NULL, NULL, NULL))
+       if (ip6_del_rt(aca->aca_rt))
                dst_free(&aca->aca_rt->u.dst);
        else
                dst_release(&aca->aca_rt->u.dst);
@@ -397,7 +396,7 @@ static int ipv6_dev_ac_dec(struct net_device *dev, struct in6_addr *addr)
        in6_dev_put(idev);
        return ret;
 }
-       
+
 /*
  *     check if the interface has this anycast address
  */
@@ -462,6 +461,7 @@ static inline struct ifacaddr6 *ac6_get_first(struct seq_file *seq)
                        break;
                }
                read_unlock_bh(&idev->lock);
+               in6_dev_put(idev);
        }
        return im;
 }
@@ -565,7 +565,7 @@ out_kfree:
        goto out;
 }
 
-static struct file_operations ac6_seq_fops = {
+static const struct file_operations ac6_seq_fops = {
        .owner          =       THIS_MODULE,
        .open           =       ac6_seq_open,
        .read           =       seq_read,