Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 5ef213f6 authored by Eric Dumazet's avatar Eric Dumazet Committed by David S. Miller
Browse files

[IPV4]: Restore multipath routing after rt_next changes.



I forgot to test build this part of the networking code... Sorry guys.
This patch renames u.rt_next to u.dst.rt_next

Signed-off-by: default avatarEric Dumazet <dada1@cosmosbay.com>
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parent bda390d5
Loading
Loading
Loading
Loading
+1 −1
Original line number Original line Diff line number Diff line
@@ -143,7 +143,7 @@ static void drr_select_route(const struct flowi *flp,
	result = NULL;
	result = NULL;
	cur_min = NULL;
	cur_min = NULL;
	for (nh = rcu_dereference(first); nh;
	for (nh = rcu_dereference(first); nh;
	     nh = rcu_dereference(nh->u.rt_next)) {
	     nh = rcu_dereference(nh->u.dst.rt_next)) {
		if ((nh->u.dst.flags & DST_BALANCED) != 0 &&
		if ((nh->u.dst.flags & DST_BALANCED) != 0 &&
		    multipath_comparekeys(&nh->fl, flp)) {
		    multipath_comparekeys(&nh->fl, flp)) {
			int nh_ifidx = nh->u.dst.dev->ifindex;
			int nh_ifidx = nh->u.dst.dev->ifindex;
+2 −2
Original line number Original line Diff line number Diff line
@@ -74,7 +74,7 @@ static void random_select_route(const struct flowi *flp,


	/* count all candidate */
	/* count all candidate */
	for (rt = rcu_dereference(first); rt;
	for (rt = rcu_dereference(first); rt;
	     rt = rcu_dereference(rt->u.rt_next)) {
	     rt = rcu_dereference(rt->u.dst.rt_next)) {
		if ((rt->u.dst.flags & DST_BALANCED) != 0 &&
		if ((rt->u.dst.flags & DST_BALANCED) != 0 &&
		    multipath_comparekeys(&rt->fl, flp))
		    multipath_comparekeys(&rt->fl, flp))
			++candidate_count;
			++candidate_count;
@@ -90,7 +90,7 @@ static void random_select_route(const struct flowi *flp,
		/* find chosen candidate and adjust GC data for all candidates
		/* find chosen candidate and adjust GC data for all candidates
		 * to ensure they stay in cache
		 * to ensure they stay in cache
		 */
		 */
		for (rt = first; rt; rt = rt->u.rt_next) {
		for (rt = first; rt; rt = rt->u.dst.rt_next) {
			if ((rt->u.dst.flags & DST_BALANCED) != 0 &&
			if ((rt->u.dst.flags & DST_BALANCED) != 0 &&
			    multipath_comparekeys(&rt->fl, flp)) {
			    multipath_comparekeys(&rt->fl, flp)) {
				rt->u.dst.lastuse = jiffies;
				rt->u.dst.lastuse = jiffies;
+1 −1
Original line number Original line Diff line number Diff line
@@ -58,7 +58,7 @@ static void rr_select_route(const struct flowi *flp,
	 */
	 */
	result = NULL;
	result = NULL;
	for (nh = rcu_dereference(first); nh;
	for (nh = rcu_dereference(first); nh;
	     nh = rcu_dereference(nh->u.rt_next)) {
	     nh = rcu_dereference(nh->u.dst.rt_next)) {
		if ((nh->u.dst.flags & DST_BALANCED) != 0 &&
		if ((nh->u.dst.flags & DST_BALANCED) != 0 &&
		    multipath_comparekeys(&nh->fl, flp)) {
		    multipath_comparekeys(&nh->fl, flp)) {
			nh->u.dst.lastuse = jiffies;
			nh->u.dst.lastuse = jiffies;
+1 −1
Original line number Original line Diff line number Diff line
@@ -167,7 +167,7 @@ static void wrandom_select_route(const struct flowi *flp,


	/* collect all candidates and identify their weights */
	/* collect all candidates and identify their weights */
	for (rt = rcu_dereference(first); rt;
	for (rt = rcu_dereference(first); rt;
	     rt = rcu_dereference(rt->u.rt_next)) {
	     rt = rcu_dereference(rt->u.dst.rt_next)) {
		if ((rt->u.dst.flags & DST_BALANCED) != 0 &&
		if ((rt->u.dst.flags & DST_BALANCED) != 0 &&
		    multipath_comparekeys(&rt->fl, flp)) {
		    multipath_comparekeys(&rt->fl, flp)) {
			struct multipath_candidate* mpc =
			struct multipath_candidate* mpc =