/* Return the number of nodes reachable by 'p'. All nodes should be initially unmarked.  */
static int count_blocks(struct icode *ic, struct block *p)
/* Return the number of nodes reachable by 'p'. All nodes should be initially unmarked.  */
static int count_blocks(struct icode *ic, struct block *p)
{
	if (p == 0 || isMarked(ic, p))
		return 0;
	Mark(ic, p);
	return count_blocks(ic, JT(p)) + count_blocks(ic, JF(p)) + 1;
}