提交 360a9887 编写于 作者: D David Ahern 提交者: David S. Miller

net/ipv6: Rename addrconf_dst_alloc

addrconf_dst_alloc now returns a fib6_info. Update the name
and its users to reflect the change.

Rename only; no functional change intended.
Signed-off-by: NDavid Ahern <dsahern@gmail.com>
Signed-off-by: NDavid S. Miller <davem@davemloft.net>
上级 93c2fb25
...@@ -136,7 +136,7 @@ struct dst_entry *icmp6_dst_alloc(struct net_device *dev, struct flowi6 *fl6); ...@@ -136,7 +136,7 @@ struct dst_entry *icmp6_dst_alloc(struct net_device *dev, struct flowi6 *fl6);
void fib6_force_start_gc(struct net *net); void fib6_force_start_gc(struct net *net);
struct fib6_info *addrconf_dst_alloc(struct net *net, struct inet6_dev *idev, struct fib6_info *addrconf_f6i_alloc(struct net *net, struct inet6_dev *idev,
const struct in6_addr *addr, bool anycast, const struct in6_addr *addr, bool anycast,
gfp_t gfp_flags); gfp_t gfp_flags);
......
...@@ -994,7 +994,7 @@ ipv6_add_addr(struct inet6_dev *idev, const struct in6_addr *addr, ...@@ -994,7 +994,7 @@ ipv6_add_addr(struct inet6_dev *idev, const struct in6_addr *addr,
gfp_t gfp_flags = can_block ? GFP_KERNEL : GFP_ATOMIC; gfp_t gfp_flags = can_block ? GFP_KERNEL : GFP_ATOMIC;
struct net *net = dev_net(idev->dev); struct net *net = dev_net(idev->dev);
struct inet6_ifaddr *ifa = NULL; struct inet6_ifaddr *ifa = NULL;
struct fib6_info *rt = NULL; struct fib6_info *f6i = NULL;
int err = 0; int err = 0;
int addr_type = ipv6_addr_type(addr); int addr_type = ipv6_addr_type(addr);
...@@ -1036,16 +1036,16 @@ ipv6_add_addr(struct inet6_dev *idev, const struct in6_addr *addr, ...@@ -1036,16 +1036,16 @@ ipv6_add_addr(struct inet6_dev *idev, const struct in6_addr *addr,
goto out; goto out;
} }
rt = addrconf_dst_alloc(net, idev, addr, false, gfp_flags); f6i = addrconf_f6i_alloc(net, idev, addr, false, gfp_flags);
if (IS_ERR(rt)) { if (IS_ERR(f6i)) {
err = PTR_ERR(rt); err = PTR_ERR(f6i);
rt = NULL; f6i = NULL;
goto out; goto out;
} }
if (net->ipv6.devconf_all->disable_policy || if (net->ipv6.devconf_all->disable_policy ||
idev->cnf.disable_policy) idev->cnf.disable_policy)
rt->dst_nopolicy = true; f6i->dst_nopolicy = true;
neigh_parms_data_state_setall(idev->nd_parms); neigh_parms_data_state_setall(idev->nd_parms);
...@@ -1067,7 +1067,7 @@ ipv6_add_addr(struct inet6_dev *idev, const struct in6_addr *addr, ...@@ -1067,7 +1067,7 @@ ipv6_add_addr(struct inet6_dev *idev, const struct in6_addr *addr,
ifa->cstamp = ifa->tstamp = jiffies; ifa->cstamp = ifa->tstamp = jiffies;
ifa->tokenized = false; ifa->tokenized = false;
ifa->rt = rt; ifa->rt = f6i;
ifa->idev = idev; ifa->idev = idev;
in6_dev_hold(idev); in6_dev_hold(idev);
...@@ -1101,7 +1101,7 @@ ipv6_add_addr(struct inet6_dev *idev, const struct in6_addr *addr, ...@@ -1101,7 +1101,7 @@ ipv6_add_addr(struct inet6_dev *idev, const struct in6_addr *addr,
inet6addr_notifier_call_chain(NETDEV_UP, ifa); inet6addr_notifier_call_chain(NETDEV_UP, ifa);
out: out:
if (unlikely(err < 0)) { if (unlikely(err < 0)) {
fib6_info_release(rt); fib6_info_release(f6i);
if (ifa) { if (ifa) {
if (ifa->idev) if (ifa->idev)
...@@ -3346,17 +3346,17 @@ static int fixup_permanent_addr(struct net *net, ...@@ -3346,17 +3346,17 @@ static int fixup_permanent_addr(struct net *net,
* case regenerate the host route. * case regenerate the host route.
*/ */
if (!ifp->rt || !ifp->rt->fib6_node) { if (!ifp->rt || !ifp->rt->fib6_node) {
struct fib6_info *rt, *prev; struct fib6_info *f6i, *prev;
rt = addrconf_dst_alloc(net, idev, &ifp->addr, false, f6i = addrconf_f6i_alloc(net, idev, &ifp->addr, false,
GFP_ATOMIC); GFP_ATOMIC);
if (IS_ERR(rt)) if (IS_ERR(f6i))
return PTR_ERR(rt); return PTR_ERR(f6i);
/* ifp->rt can be accessed outside of rtnl */ /* ifp->rt can be accessed outside of rtnl */
spin_lock(&ifp->lock); spin_lock(&ifp->lock);
prev = ifp->rt; prev = ifp->rt;
ifp->rt = rt; ifp->rt = f6i;
spin_unlock(&ifp->lock); spin_unlock(&ifp->lock);
fib6_info_release(prev); fib6_info_release(prev);
......
...@@ -247,7 +247,7 @@ static struct ifacaddr6 *aca_alloc(struct fib6_info *f6i, ...@@ -247,7 +247,7 @@ static struct ifacaddr6 *aca_alloc(struct fib6_info *f6i,
int __ipv6_dev_ac_inc(struct inet6_dev *idev, const struct in6_addr *addr) int __ipv6_dev_ac_inc(struct inet6_dev *idev, const struct in6_addr *addr)
{ {
struct ifacaddr6 *aca; struct ifacaddr6 *aca;
struct fib6_info *rt; struct fib6_info *f6i;
struct net *net; struct net *net;
int err; int err;
...@@ -268,14 +268,14 @@ int __ipv6_dev_ac_inc(struct inet6_dev *idev, const struct in6_addr *addr) ...@@ -268,14 +268,14 @@ int __ipv6_dev_ac_inc(struct inet6_dev *idev, const struct in6_addr *addr)
} }
net = dev_net(idev->dev); net = dev_net(idev->dev);
rt = addrconf_dst_alloc(net, idev, addr, true, GFP_ATOMIC); f6i = addrconf_f6i_alloc(net, idev, addr, true, GFP_ATOMIC);
if (IS_ERR(rt)) { if (IS_ERR(f6i)) {
err = PTR_ERR(rt); err = PTR_ERR(f6i);
goto out; goto out;
} }
aca = aca_alloc(rt, addr); aca = aca_alloc(f6i, addr);
if (!aca) { if (!aca) {
fib6_info_release(rt); fib6_info_release(f6i);
err = -ENOMEM; err = -ENOMEM;
goto out; goto out;
} }
...@@ -289,7 +289,7 @@ int __ipv6_dev_ac_inc(struct inet6_dev *idev, const struct in6_addr *addr) ...@@ -289,7 +289,7 @@ int __ipv6_dev_ac_inc(struct inet6_dev *idev, const struct in6_addr *addr)
aca_get(aca); aca_get(aca);
write_unlock_bh(&idev->lock); write_unlock_bh(&idev->lock);
ip6_ins_rt(net, rt); ip6_ins_rt(net, f6i);
addrconf_join_solict(idev->dev, &aca->aca_addr); addrconf_join_solict(idev->dev, &aca->aca_addr);
......
...@@ -3591,44 +3591,44 @@ static int ip6_pkt_prohibit_out(struct net *net, struct sock *sk, struct sk_buff ...@@ -3591,44 +3591,44 @@ static int ip6_pkt_prohibit_out(struct net *net, struct sock *sk, struct sk_buff
* Allocate a dst for local (unicast / anycast) address. * Allocate a dst for local (unicast / anycast) address.
*/ */
struct fib6_info *addrconf_dst_alloc(struct net *net, struct fib6_info *addrconf_f6i_alloc(struct net *net,
struct inet6_dev *idev, struct inet6_dev *idev,
const struct in6_addr *addr, const struct in6_addr *addr,
bool anycast, gfp_t gfp_flags) bool anycast, gfp_t gfp_flags)
{ {
u32 tb_id; u32 tb_id;
struct net_device *dev = idev->dev; struct net_device *dev = idev->dev;
struct fib6_info *rt; struct fib6_info *f6i;
rt = fib6_info_alloc(gfp_flags); f6i = fib6_info_alloc(gfp_flags);
if (!rt) if (!f6i)
return ERR_PTR(-ENOMEM); return ERR_PTR(-ENOMEM);
rt->dst_nocount = true; f6i->dst_nocount = true;
in6_dev_hold(idev); in6_dev_hold(idev);
rt->fib6_idev = idev; f6i->fib6_idev = idev;
rt->dst_host = true; f6i->dst_host = true;
rt->fib6_protocol = RTPROT_KERNEL; f6i->fib6_protocol = RTPROT_KERNEL;
rt->fib6_flags = RTF_UP | RTF_NONEXTHOP; f6i->fib6_flags = RTF_UP | RTF_NONEXTHOP;
if (anycast) { if (anycast) {
rt->fib6_type = RTN_ANYCAST; f6i->fib6_type = RTN_ANYCAST;
rt->fib6_flags |= RTF_ANYCAST; f6i->fib6_flags |= RTF_ANYCAST;
} else { } else {
rt->fib6_type = RTN_LOCAL; f6i->fib6_type = RTN_LOCAL;
rt->fib6_flags |= RTF_LOCAL; f6i->fib6_flags |= RTF_LOCAL;
} }
rt->fib6_nh.nh_gw = *addr; f6i->fib6_nh.nh_gw = *addr;
dev_hold(dev); dev_hold(dev);
rt->fib6_nh.nh_dev = dev; f6i->fib6_nh.nh_dev = dev;
rt->fib6_dst.addr = *addr; f6i->fib6_dst.addr = *addr;
rt->fib6_dst.plen = 128; f6i->fib6_dst.plen = 128;
tb_id = l3mdev_fib_table(idev->dev) ? : RT6_TABLE_LOCAL; tb_id = l3mdev_fib_table(idev->dev) ? : RT6_TABLE_LOCAL;
rt->fib6_table = fib6_get_table(net, tb_id); f6i->fib6_table = fib6_get_table(net, tb_id);
return rt; return f6i;
} }
/* remove deleted ip from prefsrc entries */ /* remove deleted ip from prefsrc entries */
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册