cb->nlh->nlmsg_seq, RTM_NEWROUTE, 1) <= 0) { 
cb->nlh->nlmsg_seq, RTM_NEWROUTE, 1, NLM_F_MULTI) <= 0) { 
int dn_cache_dump(struct sk_buff *skb, struct netlink_callback *cb){	struct dn_route *rt;	int h, s_h;	int idx, s_idx;	if (NLMSG_PAYLOAD(cb->nlh, 0) < sizeof(struct rtmsg))		return -EINVAL;	if (!(((struct rtmsg *)NLMSG_DATA(cb->nlh))->rtm_flags&RTM_F_CLONED))		return 0;	s_h = cb->args[0];	s_idx = idx = cb->args[1];	for(h = 0; h <= dn_rt_hash_mask; h++) {		if (h < s_h)			continue;		if (h > s_h)			s_idx = 0;		rcu_read_lock_bh();		for(rt = rcu_dereference(dn_rt_hash_table[h].chain), idx = 0;			rt;			rt = rcu_dereference(rt->u.rt_next), idx++) {			if (idx < s_idx)				continue;			skb->dst = dst_clone(&rt->u.dst);			if (dn_rt_fill_info(skb, NETLINK_CB(cb->skb).pid,					cb->nlh->nlmsg_seq, RTM_NEWROUTE, 1) <= 0) {				dst_release(xchg(&skb->dst, NULL));				rcu_read_unlock_bh();				goto done;			}			dst_release(xchg(&skb->dst, NULL));		}		rcu_read_unlock_bh();	}done:	cb->args[0] = h;	cb->args[1] = idx;	return skb->len;}
10457	/local/tlutelli/issta_data/temp/c/2005_temp/2005/10457/b6544c0b4cf2bd96195f3cdb7cebfb35090fc557/dn_route.c/clean/net/decnet/dn_route.c