diff options
Diffstat (limited to 'net/ipv4/route.c')
-rw-r--r-- | net/ipv4/route.c | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/net/ipv4/route.c b/net/ipv4/route.c index a91f6d33804c..8d62d85e68dc 100644 --- a/net/ipv4/route.c +++ b/net/ipv4/route.c | |||
@@ -1156,7 +1156,7 @@ restart: | |||
1156 | candp = NULL; | 1156 | candp = NULL; |
1157 | now = jiffies; | 1157 | now = jiffies; |
1158 | 1158 | ||
1159 | if (!rt_caching(dev_net(rt->dst.dev))) { | 1159 | if (!rt_caching(dev_net(rt->dst.dev)) || (rt->dst.flags & DST_NOCACHE)) { |
1160 | /* | 1160 | /* |
1161 | * If we're not caching, just tell the caller we | 1161 | * If we're not caching, just tell the caller we |
1162 | * were successful and don't touch the route. The | 1162 | * were successful and don't touch the route. The |
@@ -2582,6 +2582,9 @@ static struct rtable *__mkroute_output(const struct fib_result *res, | |||
2582 | 2582 | ||
2583 | rt_set_nexthop(rth, fl4, res, fi, type, 0); | 2583 | rt_set_nexthop(rth, fl4, res, fi, type, 0); |
2584 | 2584 | ||
2585 | if (fl4->flowi4_flags & FLOWI_FLAG_RT_NOCACHE) | ||
2586 | rth->dst.flags |= DST_NOCACHE; | ||
2587 | |||
2585 | return rth; | 2588 | return rth; |
2586 | } | 2589 | } |
2587 | 2590 | ||