Lines Matching refs:f6i
106 void fib6_update_sernum(struct net *net, struct fib6_info *f6i)
110 fn = rcu_dereference_protected(f6i->fib6_node,
111 lockdep_is_held(&f6i->fib6_table->tb6_lock));
148 struct fib6_info *f6i;
149 size_t sz = sizeof(*f6i);
154 f6i = kzalloc(sz, gfp_flags);
155 if (!f6i)
159 INIT_LIST_HEAD(&f6i->fib6_siblings);
160 refcount_set(&f6i->fib6_ref, 1);
162 return f6i;
167 struct fib6_info *f6i = container_of(head, struct fib6_info, rcu);
169 WARN_ON(f6i->fib6_node);
171 if (f6i->nh)
172 nexthop_put(f6i->nh);
174 fib6_nh_release(f6i->fib6_nh);
176 ip_fib_metrics_put(f6i->fib6_metrics);
177 kfree(f6i);
713 void fib6_metric_set(struct fib6_info *f6i, int metric, u32 val)
715 if (!f6i)
718 if (f6i->fib6_metrics == &dst_default_metrics) {
725 f6i->fib6_metrics = p;
728 f6i->fib6_metrics->metrics[metric - 1] = val;
1004 static void fib6_drop_pcpu_from(struct fib6_info *f6i,
1010 f6i->fib6_destroying = 1;
1013 if (f6i->nh) {
1015 .from = f6i,
1019 nexthop_for_each_fib6_nh(f6i->nh, fib6_nh_drop_pcpu_from,
1024 fib6_nh = f6i->fib6_nh;
1025 __fib6_drop_pcpu_from(fib6_nh, f6i, table);
1363 void fib6_update_sernum_stub(struct net *net, struct fib6_info *f6i)
1365 spin_lock_bh(&f6i->fib6_table->tb6_lock);
1366 fib6_update_sernum_upto_root(net, f6i);
1367 spin_unlock_bh(&f6i->fib6_table->tb6_lock);