From: Nick Piggin <[EMAIL PROTECTED]> Date: Tue, 6 Mar 2007 10:11:12 +0100
> @@ -1449,6 +1472,12 @@ static struct dst_entry *ipv4_negative_a > "%u.%u.%u.%u/%02x dropped\n", > NIPQUAD(rt->rt_dst), rt->fl.fl4_tos); > #endif > + /* XXX: > + * What if rt does not exist in rt_hash, but is in > + * old_rt_hash? Don't we have to also check there? > + * Similar questions for a couple of other places that > + * look at rt_hash, but not old_rt_hash. > + */ > rt_del(h, hash, rt); > ret = NULL; > } For the cases like ip_rt_redirect() I made the decision that we'll just not add the complexity of having to look in the old_rt_hash table. In these kinds of cases it's OK to miss events, they will just happen again. It's one of the nice things about the routing cache, if you lose information it's OK because we'll just cook up a new entry from the persistent backing store that is the real routing tables. And for events like redirects, if we miss it, we'll just send the packet to the wrong next-hop again and receive another redirect message which we'll (hopefully) propagate to a routine cache entry. Thanks for your feedback patch Nick, I'll process it tomorrow hopefully after getting some sleep. - To unsubscribe from this list: send the line "unsubscribe netdev" in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html