int bitmap_startwrite(struct bitmap *bitmap, sector_t offset, unsigned long sectors) 
int bitmap_startwrite(struct bitmap *bitmap, sector_t offset, unsigned long sectors, int behind) 
int bitmap_startwrite(struct bitmap *bitmap, sector_t offset, unsigned long sectors){	if (!bitmap) return 0;	while (sectors) {		int blocks;		bitmap_counter_t *bmc;		spin_lock_irq(&bitmap->lock);		bmc = bitmap_get_counter(bitmap, offset, &blocks, 1);		if (!bmc) {			spin_unlock_irq(&bitmap->lock);			return 0;		}		switch(*bmc) {		case 0:			bitmap_file_set_bit(bitmap, offset);			bitmap_count_page(bitmap,offset, 1);			blk_plug_device(bitmap->mddev->queue);			/* fall through */		case 1:			*bmc = 2;		}		if ((*bmc & COUNTER_MAX) == COUNTER_MAX) BUG();		(*bmc)++;		spin_unlock_irq(&bitmap->lock);		offset += blocks;		if (sectors > blocks)			sectors -= blocks;		else sectors = 0;	}	return 0;}
4520	/local/tlutelli/issta_data/temp/c/2005_temp/2005/4520/4b6d287f627b5fb6a49f78f9e81649ff98c62bb7/bitmap.c/buggy/drivers/md/bitmap.c