|
@@ -1443,7 +1443,7 @@ static int __mkroute_input(struct sk_buff *skb,
|
|
if (!(flags & RTCF_DIRECTSRC) && !itag) {
|
|
if (!(flags & RTCF_DIRECTSRC) && !itag) {
|
|
rth = FIB_RES_NH(*res).nh_rth_input;
|
|
rth = FIB_RES_NH(*res).nh_rth_input;
|
|
if (rt_cache_valid(rth)) {
|
|
if (rt_cache_valid(rth)) {
|
|
- dst_use(&rth->dst, jiffies);
|
|
|
|
|
|
+ dst_hold(&rth->dst);
|
|
goto out;
|
|
goto out;
|
|
}
|
|
}
|
|
do_cache = true;
|
|
do_cache = true;
|
|
@@ -1619,7 +1619,7 @@ local_input:
|
|
if (!(flags & RTCF_DIRECTSRC) && !itag) {
|
|
if (!(flags & RTCF_DIRECTSRC) && !itag) {
|
|
rth = FIB_RES_NH(res).nh_rth_input;
|
|
rth = FIB_RES_NH(res).nh_rth_input;
|
|
if (rt_cache_valid(rth)) {
|
|
if (rt_cache_valid(rth)) {
|
|
- dst_use(&rth->dst, jiffies);
|
|
|
|
|
|
+ dst_hold(&rth->dst);
|
|
goto set_and_out;
|
|
goto set_and_out;
|
|
}
|
|
}
|
|
do_cache = true;
|
|
do_cache = true;
|
|
@@ -1789,7 +1789,7 @@ static struct rtable *__mkroute_output(const struct fib_result *res,
|
|
if (!fnhe) {
|
|
if (!fnhe) {
|
|
rth = FIB_RES_NH(*res).nh_rth_output;
|
|
rth = FIB_RES_NH(*res).nh_rth_output;
|
|
if (rt_cache_valid(rth)) {
|
|
if (rt_cache_valid(rth)) {
|
|
- dst_use(&rth->dst, jiffies);
|
|
|
|
|
|
+ dst_hold(&rth->dst);
|
|
return rth;
|
|
return rth;
|
|
}
|
|
}
|
|
}
|
|
}
|