/* calculate the amount of free blocks in the map.  */
unsigned int adfs_map_free(struct super_block *sb)
/* calculate the amount of free blocks in the map.  */
unsigned int adfs_map_free(struct super_block *sb)
{
	struct adfs_sb_info *asb = ADFS_SB(sb);
	struct adfs_discmap *dm;
	unsigned int total = 0;
	unsigned int zone;
	dm   = asb->s_map;
	zone = asb->s_map_size;
	do {
		total += scan_free_map(asb, dm++);
	} while (--zone > 0);
	return signed_asl(total, asb->s_map2blk);
}