@@ -893,7 +893,7 @@ static int fib6_add_rt2node(struct fib6_node *fn, struct rt6_info *rt,
893
893
ins = & fn -> leaf ;
894
894
895
895
for (iter = leaf ; iter ;
896
- iter = rcu_dereference_protected (iter -> dst . rt6_next ,
896
+ iter = rcu_dereference_protected (iter -> rt6_next ,
897
897
lockdep_is_held (& rt -> rt6i_table -> tb6_lock ))) {
898
898
/*
899
899
* Search for duplicates
@@ -950,7 +950,7 @@ static int fib6_add_rt2node(struct fib6_node *fn, struct rt6_info *rt,
950
950
break ;
951
951
952
952
next_iter :
953
- ins = & iter -> dst . rt6_next ;
953
+ ins = & iter -> rt6_next ;
954
954
}
955
955
956
956
if (fallback_ins && !found ) {
@@ -979,7 +979,7 @@ static int fib6_add_rt2node(struct fib6_node *fn, struct rt6_info *rt,
979
979
& sibling -> rt6i_siblings );
980
980
break ;
981
981
}
982
- sibling = rcu_dereference_protected (sibling -> dst . rt6_next ,
982
+ sibling = rcu_dereference_protected (sibling -> rt6_next ,
983
983
lockdep_is_held (& rt -> rt6i_table -> tb6_lock ));
984
984
}
985
985
/* For each sibling in the list, increment the counter of
@@ -1009,7 +1009,7 @@ static int fib6_add_rt2node(struct fib6_node *fn, struct rt6_info *rt,
1009
1009
if (err )
1010
1010
return err ;
1011
1011
1012
- rcu_assign_pointer (rt -> dst . rt6_next , iter );
1012
+ rcu_assign_pointer (rt -> rt6_next , iter );
1013
1013
atomic_inc (& rt -> rt6i_ref );
1014
1014
rcu_assign_pointer (rt -> rt6i_node , fn );
1015
1015
rcu_assign_pointer (* ins , rt );
@@ -1040,7 +1040,7 @@ static int fib6_add_rt2node(struct fib6_node *fn, struct rt6_info *rt,
1040
1040
1041
1041
atomic_inc (& rt -> rt6i_ref );
1042
1042
rcu_assign_pointer (rt -> rt6i_node , fn );
1043
- rt -> dst . rt6_next = iter -> dst . rt6_next ;
1043
+ rt -> rt6_next = iter -> rt6_next ;
1044
1044
rcu_assign_pointer (* ins , rt );
1045
1045
call_fib6_entry_notifiers (info -> nl_net , FIB_EVENT_ENTRY_REPLACE ,
1046
1046
rt , extack );
@@ -1059,14 +1059,14 @@ static int fib6_add_rt2node(struct fib6_node *fn, struct rt6_info *rt,
1059
1059
1060
1060
if (nsiblings ) {
1061
1061
/* Replacing an ECMP route, remove all siblings */
1062
- ins = & rt -> dst . rt6_next ;
1062
+ ins = & rt -> rt6_next ;
1063
1063
iter = rcu_dereference_protected (* ins ,
1064
1064
lockdep_is_held (& rt -> rt6i_table -> tb6_lock ));
1065
1065
while (iter ) {
1066
1066
if (iter -> rt6i_metric > rt -> rt6i_metric )
1067
1067
break ;
1068
1068
if (rt6_qualify_for_ecmp (iter )) {
1069
- * ins = iter -> dst . rt6_next ;
1069
+ * ins = iter -> rt6_next ;
1070
1070
iter -> rt6i_node = NULL ;
1071
1071
fib6_purge_rt (iter , fn , info -> nl_net );
1072
1072
if (rcu_access_pointer (fn -> rr_ptr ) == iter )
@@ -1075,7 +1075,7 @@ static int fib6_add_rt2node(struct fib6_node *fn, struct rt6_info *rt,
1075
1075
nsiblings -- ;
1076
1076
info -> nl_net -> ipv6 .rt6_stats -> fib_rt_entries -- ;
1077
1077
} else {
1078
- ins = & iter -> dst . rt6_next ;
1078
+ ins = & iter -> rt6_next ;
1079
1079
}
1080
1080
iter = rcu_dereference_protected (* ins ,
1081
1081
lockdep_is_held (& rt -> rt6i_table -> tb6_lock ));
@@ -1644,7 +1644,7 @@ static void fib6_del_route(struct fib6_table *table, struct fib6_node *fn,
1644
1644
WARN_ON_ONCE (rt -> rt6i_flags & RTF_CACHE );
1645
1645
1646
1646
/* Unlink it */
1647
- * rtp = rt -> dst . rt6_next ;
1647
+ * rtp = rt -> rt6_next ;
1648
1648
rt -> rt6i_node = NULL ;
1649
1649
net -> ipv6 .rt6_stats -> fib_rt_entries -- ;
1650
1650
net -> ipv6 .rt6_stats -> fib_discarded_routes ++ ;
@@ -1672,7 +1672,7 @@ static void fib6_del_route(struct fib6_table *table, struct fib6_node *fn,
1672
1672
FOR_WALKERS (net , w ) {
1673
1673
if (w -> state == FWS_C && w -> leaf == rt ) {
1674
1674
RT6_TRACE ("walker %p adjusted by delroute\n" , w );
1675
- w -> leaf = rcu_dereference_protected (rt -> dst . rt6_next ,
1675
+ w -> leaf = rcu_dereference_protected (rt -> rt6_next ,
1676
1676
lockdep_is_held (& table -> tb6_lock ));
1677
1677
if (!w -> leaf )
1678
1678
w -> state = FWS_U ;
@@ -1731,7 +1731,7 @@ int fib6_del(struct rt6_info *rt, struct nl_info *info)
1731
1731
fib6_del_route (table , fn , rtp , info );
1732
1732
return 0 ;
1733
1733
}
1734
- rtp_next = & cur -> dst . rt6_next ;
1734
+ rtp_next = & cur -> rt6_next ;
1735
1735
}
1736
1736
return - ENOENT ;
1737
1737
}
@@ -2208,7 +2208,7 @@ static int ipv6_route_yield(struct fib6_walker *w)
2208
2208
2209
2209
do {
2210
2210
iter -> w .leaf = rcu_dereference_protected (
2211
- iter -> w .leaf -> dst . rt6_next ,
2211
+ iter -> w .leaf -> rt6_next ,
2212
2212
lockdep_is_held (& iter -> tbl -> tb6_lock ));
2213
2213
iter -> skip -- ;
2214
2214
if (!iter -> skip && iter -> w .leaf )
@@ -2274,7 +2274,7 @@ static void *ipv6_route_seq_next(struct seq_file *seq, void *v, loff_t *pos)
2274
2274
if (!v )
2275
2275
goto iter_table ;
2276
2276
2277
- n = rcu_dereference_bh (((struct rt6_info * )v )-> dst . rt6_next );
2277
+ n = rcu_dereference_bh (((struct rt6_info * )v )-> rt6_next );
2278
2278
if (n ) {
2279
2279
++ * pos ;
2280
2280
return n ;
0 commit comments