diff options
author | Milan Kocian <milon@wq.cz> | 2007-05-23 17:55:06 -0400 |
---|---|---|
committer | David S. Miller <davem@sunset.davemloft.net> | 2007-05-24 19:36:53 -0400 |
commit | b8f558313506b5bc435f2e031f3bec4b1725098e (patch) | |
tree | e82ba2864feff645abfd31ac49b3c235e48ded3d /net/ipv4/fib_semantics.c | |
parent | 8a903be129a741fd1e1d44223f0e3a01c357bde5 (diff) |
[RTNETLINK]: Fix sending netlink message when replace route.
When you replace route via ip r r command the netlink multicast message is
not send. This patch corrects it. NL message is sent with NLM_F_REPLACE
flag.
Addresses http://bugzilla.kernel.org/show_bug.cgi?id=8320
Signed-off-by: Milan Kocian <milon@wq.cz>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'net/ipv4/fib_semantics.c')
-rw-r--r-- | net/ipv4/fib_semantics.c | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/net/ipv4/fib_semantics.c b/net/ipv4/fib_semantics.c index 406ea7050aed..bb94550d95c3 100644 --- a/net/ipv4/fib_semantics.c +++ b/net/ipv4/fib_semantics.c | |||
@@ -301,7 +301,8 @@ static inline size_t fib_nlmsg_size(struct fib_info *fi) | |||
301 | } | 301 | } |
302 | 302 | ||
303 | void rtmsg_fib(int event, __be32 key, struct fib_alias *fa, | 303 | void rtmsg_fib(int event, __be32 key, struct fib_alias *fa, |
304 | int dst_len, u32 tb_id, struct nl_info *info) | 304 | int dst_len, u32 tb_id, struct nl_info *info, |
305 | unsigned int nlm_flags) | ||
305 | { | 306 | { |
306 | struct sk_buff *skb; | 307 | struct sk_buff *skb; |
307 | u32 seq = info->nlh ? info->nlh->nlmsg_seq : 0; | 308 | u32 seq = info->nlh ? info->nlh->nlmsg_seq : 0; |
@@ -313,7 +314,7 @@ void rtmsg_fib(int event, __be32 key, struct fib_alias *fa, | |||
313 | 314 | ||
314 | err = fib_dump_info(skb, info->pid, seq, event, tb_id, | 315 | err = fib_dump_info(skb, info->pid, seq, event, tb_id, |
315 | fa->fa_type, fa->fa_scope, key, dst_len, | 316 | fa->fa_type, fa->fa_scope, key, dst_len, |
316 | fa->fa_tos, fa->fa_info, 0); | 317 | fa->fa_tos, fa->fa_info, nlm_flags); |
317 | if (err < 0) { | 318 | if (err < 0) { |
318 | /* -EMSGSIZE implies BUG in fib_nlmsg_size() */ | 319 | /* -EMSGSIZE implies BUG in fib_nlmsg_size() */ |
319 | WARN_ON(err == -EMSGSIZE); | 320 | WARN_ON(err == -EMSGSIZE); |