 bytes = old_size * sizeof(struct hlist_head *); fib_hash_free(old_info_hash, bytes); fib_hash_free(old_laddrhash, bytes); 
static void fib_hash_move(struct hlist_head *new_info_hash,			  struct hlist_head *new_laddrhash,			  unsigned int new_size){	unsigned int old_size = fib_hash_size;	unsigned int i;	write_lock(&fib_info_lock);	fib_hash_size = new_size;	for (i = 0; i < old_size; i++) {		struct hlist_head *head = &fib_info_hash[i];		struct hlist_node *node, *n;		struct fib_info *fi;		hlist_for_each_entry_safe(fi, node, n, head, fib_hash) {			struct hlist_head *dest;			unsigned int new_hash;			hlist_del(&fi->fib_hash);			new_hash = fib_info_hashfn(fi);			dest = &new_info_hash[new_hash];			hlist_add_head(&fi->fib_hash, dest);		}	}	fib_info_hash = new_info_hash;	for (i = 0; i < old_size; i++) {		struct hlist_head *lhead = &fib_info_laddrhash[i];		struct hlist_node *node, *n;		struct fib_info *fi;		hlist_for_each_entry_safe(fi, node, n, lhead, fib_lhash) {			struct hlist_head *ldest;			unsigned int new_hash;			hlist_del(&fi->fib_lhash);			new_hash = fib_laddr_hashfn(fi->fib_prefsrc);			ldest = &new_laddrhash[new_hash];			hlist_add_head(&fi->fib_lhash, ldest);		}	}	fib_info_laddrhash = new_laddrhash;	write_unlock(&fib_info_lock);}
10457	/local/tlutelli/issta_data/temp/c/2005_temp/2005/10457/b7656e7f2944984befa3ab99a5b99f99a23b302b/fib_semantics.c/buggy/net/ipv4/fib_semantics.c