diff options
| author | Linus Torvalds <torvalds@g5.osdl.org> | 2006-08-03 01:35:26 -0400 |
|---|---|---|
| committer | Linus Torvalds <torvalds@g5.osdl.org> | 2006-08-03 01:35:26 -0400 |
| commit | 46f5960fdbf359f0c75989854bbaebc1de7a1eb4 (patch) | |
| tree | 132d8d0eba110342bb88fcce2519c441ac771162 /net/ipv4/route.c | |
| parent | 90eb29efd0ca9301d80d03ea13662d32436f060e (diff) | |
| parent | 29bbd72d6ee1dbf2d9f00d022f8e999aa528fb3a (diff) | |
Merge master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6
* master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6: (32 commits)
[NET]: Fix more per-cpu typos
[SECURITY]: Fix build with CONFIG_SECURITY disabled.
[I/OAT]: Remove CPU hotplug lock from net_dma_rebalance
[DECNET]: Fix for routing bug
[AF_UNIX]: Kernel memory leak fix for af_unix datagram getpeersec patch
[NET]: skb_queue_lock_key() is no longer used.
[NET]: Remove lockdep_set_class() call from skb_queue_head_init().
[IPV6]: SNMPv2 "ipv6IfStatsOutFragCreates" counter error
[IPV6]: SNMPv2 "ipv6IfStatsInHdrErrors" counter error
[NET]: Kill the WARN_ON() calls for checksum fixups.
[NETFILTER]: xt_hashlimit/xt_string: missing string validation
[NETFILTER]: SIP helper: expect RTP streams in both directions
[E1000]: Convert to netdev_alloc_skb
[TG3]: Convert to netdev_alloc_skb
[NET]: Add netdev_alloc_skb().
[TCP]: Process linger2 timeout consistently.
[SECURITY] secmark: nul-terminate secdata
[NET] infiniband: Cleanup ib_addr module to use the netevents
[NET]: Core net changes to generate netevents
[NET]: Network Event Notifier Mechanism.
...
Diffstat (limited to 'net/ipv4/route.c')
| -rw-r--r-- | net/ipv4/route.c | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/net/ipv4/route.c b/net/ipv4/route.c index 2dc6dbb28467..19bd49d69d9f 100644 --- a/net/ipv4/route.c +++ b/net/ipv4/route.c | |||
| @@ -104,6 +104,7 @@ | |||
| 104 | #include <net/icmp.h> | 104 | #include <net/icmp.h> |
| 105 | #include <net/xfrm.h> | 105 | #include <net/xfrm.h> |
| 106 | #include <net/ip_mp_alg.h> | 106 | #include <net/ip_mp_alg.h> |
| 107 | #include <net/netevent.h> | ||
| 107 | #ifdef CONFIG_SYSCTL | 108 | #ifdef CONFIG_SYSCTL |
| 108 | #include <linux/sysctl.h> | 109 | #include <linux/sysctl.h> |
| 109 | #endif | 110 | #endif |
| @@ -1125,6 +1126,7 @@ void ip_rt_redirect(u32 old_gw, u32 daddr, u32 new_gw, | |||
| 1125 | struct rtable *rth, **rthp; | 1126 | struct rtable *rth, **rthp; |
| 1126 | u32 skeys[2] = { saddr, 0 }; | 1127 | u32 skeys[2] = { saddr, 0 }; |
| 1127 | int ikeys[2] = { dev->ifindex, 0 }; | 1128 | int ikeys[2] = { dev->ifindex, 0 }; |
| 1129 | struct netevent_redirect netevent; | ||
| 1128 | 1130 | ||
| 1129 | if (!in_dev) | 1131 | if (!in_dev) |
| 1130 | return; | 1132 | return; |
| @@ -1216,6 +1218,11 @@ void ip_rt_redirect(u32 old_gw, u32 daddr, u32 new_gw, | |||
| 1216 | rt_drop(rt); | 1218 | rt_drop(rt); |
| 1217 | goto do_next; | 1219 | goto do_next; |
| 1218 | } | 1220 | } |
| 1221 | |||
| 1222 | netevent.old = &rth->u.dst; | ||
| 1223 | netevent.new = &rt->u.dst; | ||
| 1224 | call_netevent_notifiers(NETEVENT_REDIRECT, | ||
| 1225 | &netevent); | ||
| 1219 | 1226 | ||
| 1220 | rt_del(hash, rth); | 1227 | rt_del(hash, rth); |
| 1221 | if (!rt_intern_hash(hash, rt, &rt)) | 1228 | if (!rt_intern_hash(hash, rt, &rt)) |
| @@ -1452,6 +1459,7 @@ static void ip_rt_update_pmtu(struct dst_entry *dst, u32 mtu) | |||
| 1452 | } | 1459 | } |
| 1453 | dst->metrics[RTAX_MTU-1] = mtu; | 1460 | dst->metrics[RTAX_MTU-1] = mtu; |
| 1454 | dst_set_expires(dst, ip_rt_mtu_expires); | 1461 | dst_set_expires(dst, ip_rt_mtu_expires); |
| 1462 | call_netevent_notifiers(NETEVENT_PMTU_UPDATE, dst); | ||
| 1455 | } | 1463 | } |
| 1456 | } | 1464 | } |
| 1457 | 1465 | ||
