unsigned long k, pages; struct bitmap_page *bp; 
void bitmap_destroy(mddev_t *mddev){	unsigned long k, pages;	struct bitmap_page *bp;	struct bitmap *bitmap = mddev->bitmap;	if (!bitmap) /* there was no bitmap */		return;	mddev->bitmap = NULL; /* disconnect from the md device */	/* release the bitmap file and kill the daemon */	bitmap_file_put(bitmap);	bp = bitmap->bp;	pages = bitmap->pages;	/* free all allocated memory */	mempool_destroy(bitmap->write_pool);	if (bp) /* deallocate the page memory */		for (k = 0; k < pages; k++)			if (bp[k].map && !bp[k].hijacked)				kfree(bp[k].map);	kfree(bp);	kfree(bitmap);}
10457	/local/tlutelli/issta_data/temp/c/2005_temp/2005/10457/3178b0dbdf67322f6506582e494bdf553cc85c32/bitmap.c/buggy/drivers/md/bitmap.c