提交 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);
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,
gfp_t gfp_flags);
......
......@@ -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;
struct net *net = dev_net(idev->dev);
struct inet6_ifaddr *ifa = NULL;
struct fib6_info *rt = NULL;
struct fib6_info *f6i = NULL;
int err = 0;
int addr_type = ipv6_addr_type(addr);
......@@ -1036,16 +1036,16 @@ ipv6_add_addr(struct inet6_dev *idev, const struct in6_addr *addr,
goto out;
}
rt = addrconf_dst_alloc(net, idev, addr, false, gfp_flags);
if (IS_ERR(rt)) {
err = PTR_ERR(rt);
rt = NULL;
f6i = addrconf_f6i_alloc(net, idev, addr, false, gfp_flags);
if (IS_ERR(f6i)) {
err = PTR_ERR(f6i);
f6i = NULL;
goto out;
}
if (net->ipv6.devconf_all->disable_policy ||
idev->cnf.disable_policy)
rt->dst_nopolicy = true;
f6i->dst_nopolicy = true;
neigh_parms_data_state_setall(idev->nd_parms);
......@@ -1067,7 +1067,7 @@ ipv6_add_addr(struct inet6_dev *idev, const struct in6_addr *addr,
ifa->cstamp = ifa->tstamp = jiffies;
ifa->tokenized = false;
ifa->rt = rt;
ifa->rt = f6i;
ifa->idev = idev;
in6_dev_hold(idev);
......@@ -1101,7 +1101,7 @@ ipv6_add_addr(struct inet6_dev *idev, const struct in6_addr *addr,
inet6addr_notifier_call_chain(NETDEV_UP, ifa);
out:
if (unlikely(err < 0)) {
fib6_info_release(rt);
fib6_info_release(f6i);
if (ifa) {
if (ifa->idev)
......@@ -3346,17 +3346,17 @@ static int fixup_permanent_addr(struct net *net,
* case regenerate the host route.
*/
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,
GFP_ATOMIC);
if (IS_ERR(rt))
return PTR_ERR(rt);
f6i = addrconf_f6i_alloc(net, idev, &ifp->addr, false,
GFP_ATOMIC);
if (IS_ERR(f6i))
return PTR_ERR(f6i);
/* ifp->rt can be accessed outside of rtnl */
spin_lock(&ifp->lock);
prev = ifp->rt;
ifp->rt = rt;
ifp->rt = f6i;
spin_unlock(&ifp->lock);
fib6_info_release(prev);
......
......@@ -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)
{
struct ifacaddr6 *aca;
struct fib6_info *rt;
struct fib6_info *f6i;
struct net *net;
int err;
......@@ -268,14 +268,14 @@ int __ipv6_dev_ac_inc(struct inet6_dev *idev, const struct in6_addr *addr)
}
net = dev_net(idev->dev);
rt = addrconf_dst_alloc(net, idev, addr, true, GFP_ATOMIC);
if (IS_ERR(rt)) {
err = PTR_ERR(rt);
f6i = addrconf_f6i_alloc(net, idev, addr, true, GFP_ATOMIC);
if (IS_ERR(f6i)) {
err = PTR_ERR(f6i);
goto out;
}
aca = aca_alloc(rt, addr);
aca = aca_alloc(f6i, addr);
if (!aca) {
fib6_info_release(rt);
fib6_info_release(f6i);
err = -ENOMEM;
goto out;
}
......@@ -289,7 +289,7 @@ int __ipv6_dev_ac_inc(struct inet6_dev *idev, const struct in6_addr *addr)
aca_get(aca);
write_unlock_bh(&idev->lock);
ip6_ins_rt(net, rt);
ip6_ins_rt(net, f6i);
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
* Allocate a dst for local (unicast / anycast) address.
*/
struct fib6_info *addrconf_dst_alloc(struct net *net,
struct inet6_dev *idev,
const struct in6_addr *addr,
bool anycast, gfp_t gfp_flags)
struct fib6_info *addrconf_f6i_alloc(struct net *net,
struct inet6_dev *idev,
const struct in6_addr *addr,
bool anycast, gfp_t gfp_flags)
{
u32 tb_id;
struct net_device *dev = idev->dev;
struct fib6_info *rt;
struct fib6_info *f6i;
rt = fib6_info_alloc(gfp_flags);
if (!rt)
f6i = fib6_info_alloc(gfp_flags);
if (!f6i)
return ERR_PTR(-ENOMEM);
rt->dst_nocount = true;
f6i->dst_nocount = true;
in6_dev_hold(idev);
rt->fib6_idev = idev;
f6i->fib6_idev = idev;
rt->dst_host = true;
rt->fib6_protocol = RTPROT_KERNEL;
rt->fib6_flags = RTF_UP | RTF_NONEXTHOP;
f6i->dst_host = true;
f6i->fib6_protocol = RTPROT_KERNEL;
f6i->fib6_flags = RTF_UP | RTF_NONEXTHOP;
if (anycast) {
rt->fib6_type = RTN_ANYCAST;
rt->fib6_flags |= RTF_ANYCAST;
f6i->fib6_type = RTN_ANYCAST;
f6i->fib6_flags |= RTF_ANYCAST;
} else {
rt->fib6_type = RTN_LOCAL;
rt->fib6_flags |= RTF_LOCAL;
f6i->fib6_type = RTN_LOCAL;
f6i->fib6_flags |= RTF_LOCAL;
}
rt->fib6_nh.nh_gw = *addr;
f6i->fib6_nh.nh_gw = *addr;
dev_hold(dev);
rt->fib6_nh.nh_dev = dev;
rt->fib6_dst.addr = *addr;
rt->fib6_dst.plen = 128;
f6i->fib6_nh.nh_dev = dev;
f6i->fib6_dst.addr = *addr;
f6i->fib6_dst.plen = 128;
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 */
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册