read_unlock(&fib_lock); 
rcu_read_unlock(); 
static int fn_trie_dump(struct fib_table *tb, struct sk_buff *skb, struct netlink_callback *cb){	int m, s_m;	struct trie *t = (struct trie *) tb->tb_data;	s_m = cb->args[1];	read_lock(&fib_lock);	for (m = 0; m <= 32; m++) {		if (m < s_m)			continue;		if (m > s_m)			memset(&cb->args[2], 0,				sizeof(cb->args) - 2*sizeof(cb->args[0]));		if (fn_trie_dump_plen(t, 32-m, tb, skb, cb)<0) {			cb->args[1] = m;			goto out;		}	}	read_unlock(&fib_lock);	cb->args[1] = m;	return skb->len;out:	read_unlock(&fib_lock);	return -1;}
10457	/local/tlutelli/issta_data/temp/c/2005_temp/2005/10457/2373ce1ca04dd46bf2b8b0f9a799eb2a90da92fb/fib_trie.c/buggy/net/ipv4/fib_trie.c