struct node *n = t->trie; 
struct node *n; 
static struct trie_stat *trie_collect_stats(struct trie *t){	struct node *n = t->trie;	struct trie_stat *s = trie_stat_new();	int cindex = 0;	int pend = 0;	int depth = 0;	if (!s)		return NULL;	if (!n)		return s;	read_lock(&fib_lock);	if (IS_TNODE(n)) {		struct tnode *tn = (struct tnode *)n;		pend = tn->pos+tn->bits;		s->nodesizes[tn->bits]++;		depth++;		while (tn && cindex < (1 << tn->bits)) {			if (tn->child[cindex]) {				/* Got a child */				if (IS_LEAF(tn->child[cindex])) {					cindex++;					/* stats */					if (depth > s->maxdepth)						s->maxdepth = depth;					s->totdepth += depth;					s->leaves++;				} else {					/*					 * New tnode. Decend one level					 */					s->tnodes++;					s->nodesizes[tn->bits]++;					depth++;					n = tn->child[cindex];					tn = (struct tnode *)n;					pend = tn->pos+tn->bits;					cindex = 0;				}			} else {				cindex++;				s->nullpointers++;			}			/*			 * Test if we are done			 */			while (cindex >= (1 << tn->bits)) {				/*				 * Move upwards and test for root				 * pop off all traversed  nodes				 */				if (NODE_PARENT(tn) == NULL) {					tn = NULL;					n = NULL;					break;				}				cindex = tkey_extract_bits(tn->key, NODE_PARENT(tn)->pos, NODE_PARENT(tn)->bits);				tn = NODE_PARENT(tn);				cindex++;				n = (struct node *)tn;				pend = tn->pos+tn->bits;				depth--; 			}		}	}	read_unlock(&fib_lock);	return s;}
10457	/local/tlutelli/issta_data/temp/c/2005_temp/2005/10457/2373ce1ca04dd46bf2b8b0f9a799eb2a90da92fb/fib_trie.c/buggy/net/ipv4/fib_trie.c