Lines Matching refs:f6i
107 void fib6_update_sernum(struct net *net, struct fib6_info *f6i)
111 fn = rcu_dereference_protected(f6i->fib6_node,
112 lockdep_is_held(&f6i->fib6_table->tb6_lock));
149 struct fib6_info *f6i;
150 size_t sz = sizeof(*f6i);
155 f6i = kzalloc(sz, gfp_flags);
156 if (!f6i)
160 INIT_LIST_HEAD(&f6i->fib6_siblings);
161 refcount_set(&f6i->fib6_ref, 1);
163 return f6i;
168 struct fib6_info *f6i = container_of(head, struct fib6_info, rcu);
170 WARN_ON(f6i->fib6_node);
172 if (f6i->nh)
173 nexthop_put(f6i->nh);
175 fib6_nh_release(f6i->fib6_nh);
177 ip_fib_metrics_put(f6i->fib6_metrics);
178 kfree(f6i);
714 void fib6_metric_set(struct fib6_info *f6i, int metric, u32 val)
716 if (!f6i)
719 if (f6i->fib6_metrics == &dst_default_metrics) {
726 f6i->fib6_metrics = p;
729 f6i->fib6_metrics->metrics[metric - 1] = val;
1001 static void fib6_drop_pcpu_from(struct fib6_info *f6i,
1007 f6i->fib6_destroying = 1;
1010 if (f6i->nh) {
1012 .from = f6i,
1016 nexthop_for_each_fib6_nh(f6i->nh, fib6_nh_drop_pcpu_from,
1021 fib6_nh = f6i->fib6_nh;
1022 __fib6_drop_pcpu_from(fib6_nh, f6i, table);
1360 void fib6_update_sernum_stub(struct net *net, struct fib6_info *f6i)
1362 spin_lock_bh(&f6i->fib6_table->tb6_lock);
1363 fib6_update_sernum_upto_root(net, f6i);
1364 spin_unlock_bh(&f6i->fib6_table->tb6_lock);