diff options
author | Thomas Graf <tgraf@suug.ch> | 2006-08-15 03:33:35 -0400 |
---|---|---|
committer | David S. Miller <davem@sunset.davemloft.net> | 2006-09-22 17:54:52 -0400 |
commit | dc738dd83e88c3c5de55431f8cfb758de5d4df48 (patch) | |
tree | bf82bfdb484002d72a2bf2e568514e58b5f397c3 /net/decnet/dn_table.c | |
parent | b8673311804ca29680dd584bd08352001fcbe2f8 (diff) |
[DECNET]: Convert DECnet notifications to use rtnl_notify()
Signed-off-by: Thomas Graf <tgraf@suug.ch>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'net/decnet/dn_table.c')
-rw-r--r-- | net/decnet/dn_table.c | 28 |
1 files changed, 14 insertions, 14 deletions
diff --git a/net/decnet/dn_table.c b/net/decnet/dn_table.c index 10e87262b6f..317904bb589 100644 --- a/net/decnet/dn_table.c +++ b/net/decnet/dn_table.c | |||
@@ -333,24 +333,24 @@ static void dn_rtmsg_fib(int event, struct dn_fib_node *f, int z, u32 tb_id, | |||
333 | { | 333 | { |
334 | struct sk_buff *skb; | 334 | struct sk_buff *skb; |
335 | u32 pid = req ? req->pid : 0; | 335 | u32 pid = req ? req->pid : 0; |
336 | int size = NLMSG_SPACE(sizeof(struct rtmsg) + 256); | 336 | int err = -ENOBUFS; |
337 | 337 | ||
338 | skb = alloc_skb(size, GFP_KERNEL); | 338 | skb = nlmsg_new(NLMSG_GOODSIZE, GFP_KERNEL); |
339 | if (!skb) | 339 | if (skb == NULL) |
340 | return; | 340 | goto errout; |
341 | 341 | ||
342 | if (dn_fib_dump_info(skb, pid, nlh->nlmsg_seq, event, tb_id, | 342 | err = dn_fib_dump_info(skb, pid, nlh->nlmsg_seq, event, tb_id, |
343 | f->fn_type, f->fn_scope, &f->fn_key, z, | 343 | f->fn_type, f->fn_scope, &f->fn_key, z, |
344 | DN_FIB_INFO(f), 0) < 0) { | 344 | DN_FIB_INFO(f), 0); |
345 | if (err < 0) { | ||
345 | kfree_skb(skb); | 346 | kfree_skb(skb); |
346 | return; | 347 | goto errout; |
347 | } | 348 | } |
348 | NETLINK_CB(skb).dst_group = RTNLGRP_DECnet_ROUTE; | 349 | |
349 | if (nlh->nlmsg_flags & NLM_F_ECHO) | 350 | err = rtnl_notify(skb, pid, RTNLGRP_DECnet_ROUTE, nlh, GFP_KERNEL); |
350 | atomic_inc(&skb->users); | 351 | errout: |
351 | netlink_broadcast(rtnl, skb, pid, RTNLGRP_DECnet_ROUTE, GFP_KERNEL); | 352 | if (err < 0) |
352 | if (nlh->nlmsg_flags & NLM_F_ECHO) | 353 | rtnl_set_sk_err(RTNLGRP_DECnet_ROUTE, err); |
353 | netlink_unicast(rtnl, skb, pid, MSG_DONTWAIT); | ||
354 | } | 354 | } |
355 | 355 | ||
356 | static __inline__ int dn_hash_dump_bucket(struct sk_buff *skb, | 356 | static __inline__ int dn_hash_dump_bucket(struct sk_buff *skb, |