update_bitmap = 1; ubd_set_bit(sector + i, (unsigned char *) bitmap); } 
if(req->bitmap_start == -1) req->bitmap_start = sector + i; req->bitmap_end = sector + i + 1; 
static void cowify_bitmap(__u64 io_offset, int length, unsigned long *cow_mask,			  __u64 *cow_offset, unsigned long *bitmap,			  __u64 bitmap_offset, unsigned long *bitmap_words,			  __u64 bitmap_len){	__u64 sector = io_offset >> 9;	int i, update_bitmap = 0;	for(i = 0; i < length >> 9; i++){		if(cow_mask != NULL)			ubd_set_bit(i, (unsigned char *) cow_mask);		if(ubd_test_bit(sector + i, (unsigned char *) bitmap))			continue;		update_bitmap = 1;		ubd_set_bit(sector + i, (unsigned char *) bitmap);	}	if(!update_bitmap)		return;	*cow_offset = sector / (sizeof(unsigned long) * 8);	/* This takes care of the case where we're exactly at the end of the	 * device, and *cow_offset + 1 is off the end.  So, just back it up	 * by one word.  Thanks to Lynn Kerby for the fix and James McMechan	 * for the original diagnosis.	 */	if(*cow_offset == ((bitmap_len + sizeof(unsigned long) - 1) /			   sizeof(unsigned long) - 1))		(*cow_offset)--;	bitmap_words[0] = bitmap[*cow_offset];	bitmap_words[1] = bitmap[*cow_offset + 1];	*cow_offset *= sizeof(unsigned long);	*cow_offset += bitmap_offset;}
10457	/local/tlutelli/issta_data/temp/c/2005_temp/2005/10457/09ace81c1d737bcbb2423db235ac980cac4d5de9/ubd_kern.c/buggy/arch/um/drivers/ubd_kern.c