/* bitmap_file_kick - if an error occurs while manipulating the bitmap file then it is no longer reliable, so we stop using it and we mark the file as failed in the superblock  */
static void bitmap_file_kick(struct bitmap *bitmap)
/* bitmap_file_kick - if an error occurs while manipulating the bitmap file then it is no longer reliable, so we stop using it and we mark the file as failed in the superblock  */
static void bitmap_file_kick(struct bitmap *bitmap)
{
	char *path, *ptr = NULL;
	if (bitmap_mask_state(bitmap, BITMAP_STALE, MASK_SET) == 0) {
		bitmap_update_sb(bitmap);
		if (bitmap->file) {
			path = kmalloc(PAGE_SIZE, GFP_KERNEL);
			if (path)
				ptr = d_path(&bitmap->file->f_path, path,
					     PAGE_SIZE);
			printk(KERN_ALERT
			      "%s: kicking failed bitmap file %s from array!\n",
			      bmname(bitmap), IS_ERR(ptr) ? "" : ptr);
			kfree(path);
		} else
			printk(KERN_ALERT
			       "%s: disabling internal bitmap due to errors\n",
			       bmname(bitmap));
	}
	bitmap_file_put(bitmap);
	return;
}