/* we set the bit immediately, then we record the page number so that when an unplug occurs, we can flush the dirty pages out to disk  */
static void bitmap_file_set_bit(struct bitmap *bitmap, sector_t block)
/* we set the bit immediately, then we record the page number so that when an unplug occurs, we can flush the dirty pages out to disk  */
static void bitmap_file_set_bit(struct bitmap *bitmap, sector_t block)
{
	unsigned long bit;
	struct page *page;
	void *kaddr;
	unsigned long chunk = block >> CHUNK_BLOCK_SHIFT(bitmap);
	if (!bitmap->filemap) {
		return;
	}
	page = filemap_get_page(bitmap, chunk);
	if (!page) return;
	bit = file_page_offset(bitmap, chunk);
	kaddr = kmap_atomic(page, KM_USER0);
	if (bitmap->flags & BITMAP_HOSTENDIAN)
		set_bit(bit, kaddr);
	else
		ext2_set_bit(bit, kaddr);
	kunmap_atomic(kaddr, KM_USER0);
	PRINTK("set file bit %lu page %lu\n", bit, page->index);
	set_page_attr(bitmap, page, BITMAP_PAGE_DIRTY);
}