aca 217 net/ipv6/anycast.c static void ipv6_add_acaddr_hash(struct net *net, struct ifacaddr6 *aca) aca 219 net/ipv6/anycast.c unsigned int hash = inet6_acaddr_hash(net, &aca->aca_addr); aca 222 net/ipv6/anycast.c hlist_add_head_rcu(&aca->aca_addr_lst, &inet6_acaddr_lst[hash]); aca 226 net/ipv6/anycast.c static void ipv6_del_acaddr_hash(struct ifacaddr6 *aca) aca 229 net/ipv6/anycast.c hlist_del_init_rcu(&aca->aca_addr_lst); aca 233 net/ipv6/anycast.c static void aca_get(struct ifacaddr6 *aca) aca 235 net/ipv6/anycast.c refcount_inc(&aca->aca_refcnt); aca 240 net/ipv6/anycast.c struct ifacaddr6 *aca = container_of(h, struct ifacaddr6, rcu); aca 242 net/ipv6/anycast.c fib6_info_release(aca->aca_rt); aca 243 net/ipv6/anycast.c kfree(aca); aca 256 net/ipv6/anycast.c struct ifacaddr6 *aca; aca 258 net/ipv6/anycast.c aca = kzalloc(sizeof(*aca), GFP_ATOMIC); aca 259 net/ipv6/anycast.c if (!aca) aca 262 net/ipv6/anycast.c aca->aca_addr = *addr; aca 264 net/ipv6/anycast.c aca->aca_rt = f6i; aca 265 net/ipv6/anycast.c INIT_HLIST_NODE(&aca->aca_addr_lst); aca 266 net/ipv6/anycast.c aca->aca_users = 1; aca 268 net/ipv6/anycast.c aca->aca_cstamp = aca->aca_tstamp = jiffies; aca 269 net/ipv6/anycast.c refcount_set(&aca->aca_refcnt, 1); aca 271 net/ipv6/anycast.c return aca; aca 279 net/ipv6/anycast.c struct ifacaddr6 *aca; aca 292 net/ipv6/anycast.c for (aca = idev->ac_list; aca; aca = aca->aca_next) { aca 293 net/ipv6/anycast.c if (ipv6_addr_equal(&aca->aca_addr, addr)) { aca 294 net/ipv6/anycast.c aca->aca_users++; aca 306 net/ipv6/anycast.c aca = aca_alloc(f6i, addr); aca 307 net/ipv6/anycast.c if (!aca) { aca 313 net/ipv6/anycast.c aca->aca_next = idev->ac_list; aca 314 net/ipv6/anycast.c idev->ac_list = aca; aca 319 net/ipv6/anycast.c aca_get(aca); aca 322 net/ipv6/anycast.c ipv6_add_acaddr_hash(net, aca); aca 326 net/ipv6/anycast.c addrconf_join_solict(idev->dev, &aca->aca_addr); aca 328 net/ipv6/anycast.c aca_put(aca); aca 340 net/ipv6/anycast.c struct ifacaddr6 *aca, *prev_aca; aca 346 net/ipv6/anycast.c for (aca = idev->ac_list; aca; aca = aca->aca_next) { aca 347 net/ipv6/anycast.c if (ipv6_addr_equal(&aca->aca_addr, addr)) aca 349 net/ipv6/anycast.c prev_aca = aca; aca 351 net/ipv6/anycast.c if (!aca) { aca 355 net/ipv6/anycast.c if (--aca->aca_users > 0) { aca 360 net/ipv6/anycast.c prev_aca->aca_next = aca->aca_next; aca 362 net/ipv6/anycast.c idev->ac_list = aca->aca_next; aca 364 net/ipv6/anycast.c ipv6_del_acaddr_hash(aca); aca 365 net/ipv6/anycast.c addrconf_leave_solict(idev, &aca->aca_addr); aca 367 net/ipv6/anycast.c ip6_del_rt(dev_net(idev->dev), aca->aca_rt); aca 369 net/ipv6/anycast.c aca_put(aca); aca 385 net/ipv6/anycast.c struct ifacaddr6 *aca; aca 388 net/ipv6/anycast.c while ((aca = idev->ac_list) != NULL) { aca 389 net/ipv6/anycast.c idev->ac_list = aca->aca_next; aca 392 net/ipv6/anycast.c ipv6_del_acaddr_hash(aca); aca 394 net/ipv6/anycast.c addrconf_leave_solict(idev, &aca->aca_addr); aca 396 net/ipv6/anycast.c ip6_del_rt(dev_net(idev->dev), aca->aca_rt); aca 398 net/ipv6/anycast.c aca_put(aca); aca 412 net/ipv6/anycast.c struct ifacaddr6 *aca; aca 417 net/ipv6/anycast.c for (aca = idev->ac_list; aca; aca = aca->aca_next) aca 418 net/ipv6/anycast.c if (ipv6_addr_equal(&aca->aca_addr, addr)) aca 421 net/ipv6/anycast.c return aca != NULL; aca 433 net/ipv6/anycast.c struct ifacaddr6 *aca; aca 442 net/ipv6/anycast.c hlist_for_each_entry_rcu(aca, &inet6_acaddr_lst[hash], aca 444 net/ipv6/anycast.c nh_dev = fib6_info_nh_dev(aca->aca_rt); aca 447 net/ipv6/anycast.c if (ipv6_addr_equal(&aca->aca_addr, addr)) {